Мне нужна помощь в следующем:)
Для начала я работаю над большим приложением, у которого есть клиент и сервер WinForms. Сервер в нашем случае это набор сервисов WCF. Существует один сервис, который отвечает за аутентификацию пользователей. Логика аутентификации является нестандартной и сложной, и служба аутентификации использует разных поставщиков членства.
Мы хотим защитить доступ к серверным сервисам для неаутентифицированных пользователей. Пользователи должны сначала пройти проверку подлинности, а затем использовать другие службы (в данном случае это другие системы, службы, клиент WinForms и т. Д.). Исходя из этого, мы решили использовать функцию авторизации URL / файлов в ASP.NET.
Итак, я установил режим совместимости ASP.NET, разрешил использование файлов cookie во всех конфигурациях привязки, добавил атрибут AspNetCompatibilityRequirements в наши службы и добавил следующие конфигурации в конфигурацию:
<authentication mode="Forms">
<forms cookieless="UseCookies">
<credentials passwordFormat="Clear" />
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
...
<location path="AuthenticationService.svc">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
В метод аутентификации нашего сервиса аутентификации я добавляю следующий код:
public AuthenticationResult AuthenticateUser(string username, string password)
{
AuthenticationResult result = new AuthenticationResult();
result = Authenticate(username, password);
if (result.IsAuthenticated)
FormsAuthentication.SetAuthCookie(username, true);
return result;
}
Далее я написал следующий код:
var authClient = new AuthenticationServiceClient();
var result = authClient.AuthenticateUser("user", "password");
var otherClient = new OtherServiceClient();
var temp = otherClient.DoSomething();
Но после аутентификации я не могу получить доступ к OtherServiceClient ...
Итак, как я могу разделить контекст вызова между вызовами служб WCF? Кто-нибудь может предоставить несколько полезных статей по этому вопросу?
Заранее спасибо!
С наилучшими пожеланиями.