Я аутентифицирую пользователя на службе WCF через IIS7 с использованием проверки подлинности Windows и олицетворения ASP.NET.Как олицетворять пользователя для службы WCF?
При отладке локально я могу видеть System.Security.Principal.WindowsIdentity.GetCurrent(). Имя как равное моим учетным данным Windows. Когда я развертываю эту службу на сервере, WCF не запускается, если не включена анонимная аутентификация.
Итак, как мы получаем это WCF сервиса для работы на сервере с Anonymous Authentication отключены?
UPDATE 1: Сообщение об ошибке после попытки оба предложения:
схемы аутентификации, настроенных на хосте ('IntegratedWindowsAuthentication') не позволяют, сконфигурированные на связывание 'WebHttpBinding' ('Anonymous «). Убедитесь, что для параметра SecurityMode установлено значение Transport или TransportCredentialOnly. Кроме того, это может быть решена путем изменения на проверку подлинности схемы для этого приложения с помощью инструмента управления IIS, через свойство ServiceHost.Authentication.AuthenticationSchemes, в конфигурационном файле приложения на элемента, обновив свойство ClientCredentialType на binding, или путем настройки свойства AuthenticationScheme на HttpTransportBindingElement.
UPDATE 2: Аутентификация была установлена следующим образом:
пула приложений:
- идентичности = NetworkService
Веб-сайт:
- Anonymous Authentication = отключено
- ASP.NET Authentication = включено
- проверка подлинности Windows = включено
WCF Применение:
- анонимной проверки подлинности = отключено
- ASP.NET Authentication = включено
- Аутентификация Windows = включена
спасибо. Однако нам нужно использовать webHttpBinding, а не basicHttpBinding, чтобы мы могли определять поведение по умолчанию для службы. Пожалуйста, посмотрите на вопрос, чтобы увидеть сообщение об ошибке, которое мы сейчас получаем. – aleafonso