Я новичок во всех вещах в Интернете, поэтому вопрос может показаться тривиальным, но не для меня.Логика реализации:
ASP.NET MVC 3 -> Служба WCF -> База данных SQL
Аутентификация и авторизация в ASP.NET MVC3 используют настраиваемые поставщики членства и ролей, поскольку все данные журнала указаныхранятся в базе данных SQL.Требуется также реализовать авторизацию для службы WCF.При этом используются те же учетные данные, что и в ASP.NET MVC 3. Я реализовал тип имени пользователя для безопасности WCF, используя настраиваемый UsernameValidator.
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
Это работает впервые, когда пользователь входит на веб-сайт, потому что есть учетные данные.Однако после FormsAuthentication.SetAuthCookie на ASP.NET MVC 3 имя пользователя - все, что у меня есть.Поскольку подход MVC состоит из множества контроллеров, я должен создать экземпляр клиента WCF на каждом из них.Но без учетных данных это не имеет смысла.
[Authorize]
public class MyController : Controller
{
private WebServiceClient ServiceClient = new WebServiceClient();
public ActionResult Index(string userName)
{
var model = ServiceClient.GetDataList();
return View(model);
}
}
Новый экземпляр не использует существующий сеанс.Он создает новый с пустыми учетными данными.
- Существует ли безопасный способ создания экземпляра клиента WCF за сеанс?
- Или вариант WCF, принимающий проверку подлинности ASP.NET?
- Каков наилучший способ присоединения аутентификации asp.net к запросу wcf?