У меня есть служба данных WCF, и в web.config я использовал
<authentication mode="Windows" />
Я пытаюсь избежать любой конфигурации привязки, поэтому на данный момент не использовал ни одной.
Я получаю доступ к службе из приложения WPF.
IIS настроен только для «проверки подлинности Windows».
При доступе к службе я устанавливаю учетные данные
_proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
Но я получаю сообщение об ошибке «401 - Несанкционированный: доступ запрещен из-за неверных учетных данных».
Если я изменю его на следующее, служба будет работать правильно:
_proxy.Credentials = new NetworkCredential("username", "$password", "Domain");
При трассировкеэто в Fiddler, я замечаю, что когда я использую DefaultNetworkCredentials, заголовок аутентификации NTLM равен
Домен:
Пользователь: username@Domain.com
Хост: PC-59
При использовании нового успешного NetworkCredential («username», «$ password», «MyDomain») заголовок Auth:
Домен: MyDomain
Пользователь: username
Хост: ПК-59
PS.Для справки, вот моя конфигурация сервиса:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />