У меня есть служба WCF, размещенная в IIS, со следующей конфигурацией привязки (я удалил все атрибуты из привязки для пространства) для wsHttpBinding и TransportWithMessageCredential
<wsHttpBinding>
<binding name="BindingName" .../>
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
с служебным поведением:
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Windows" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
Анонимная проверка подлинности отключена, а проверка подлинности Windows включена.
На стороне клиента учетные данные устанавливаются с использованием действительного пользователя и пароля Windows, но я получаю следующее исключение при каждом вызове службы:
HTTP-запрос неавторизован со схемой аутентификации клиента «Анонимный». Заголовок аутентификации, полученный от сервера, был «Negotiate, NTLM». ---> System.ServiceModel.Security.MessageSecurityException: HTTP-запрос неавторизован со схемой аутентификации клиента «Анонимный». Заголовок аутентификации, полученный от сервера, был «Negotiate, NTLM». ---> System.Net.WebException: удаленный сервер возвратил ошибку: (401) неавторизованный.
С собственной версией службы WCF он отлично работает под действующей учетной записью Windows.
Любая помощь приветствуется.