У меня есть 2 веб-приложения: одно - веб-приложение ASP.Net, а другое - приложение веб-служб ASP.Net WCF. Я хочу, чтобы веб-приложение использовало сервисы веб-приложения WFC. В конечном итоге эти 2 приложения будут взаимодействовать через брандмауэр.
Я хочу, чтобы пользователь вошел в клиентское веб-приложение с использованием проверки подлинности с помощью форм, аутентифицированной службой wcf, а затем получил доступ к ресурсам службы на основе своих ролей.
До сих пор мне удалось войти в систему с помощью System.Web.ApplicationServices.AuthenticationService, хотя я не смог заставить метод службы IsLoggedIn вернуть значение true. Однако клиентское веб-приложение распознает, что пользователь вошел в систему.
Кроме того, я смог создать фиктивную службу, которая распознает пользователя в OperationContext.Current.ServiceSecurityContext.PrimaryIdentity, и я подумал, что это был зарегистрированный пользователь, который он распознавал, но оказалось, что на самом деле это ServiceClient .ClientCredentials.UserName, который он распознает. Как я могу передать информацию о вошедшем в систему пользователе службе WCF?
Я мог бы установить ClientCredentials.UserName для вошедшего в систему пользователя, но не могу придумать, как получить пароль.
Я использую здесь совершенно неправильный подход или мне чего-то не хватает? Любой совет будет оценен.
Это моя обязательная конфигурация:
<wsHttpBinding>
<binding name="wsHttp">
<security mode="Message">
<message clientCredentialType="UserName"
negotiateServiceCredential="false"
establishSecurityContext="false"/>
</security>
</binding>
</wsHttpBinding>
Спасибо,
Иэн