【发布时间】:2011-05-10 01:19:41
【问题描述】:
我有一个 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 Auth 标头是
域名:
用户:username@Domain.com
主机:PC-59
使用成功的new NetworkCredential("username", "$password", "MyDomain")时,Auth header为
域:我的域
用户:用户名
主机:PC-59
附言。作为记录,这是我的服务配置:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
【问题讨论】:
-
能否显示 WCF 服务的服务器配置。
-
虽然我接受我可能必须使用配置来解决这个问题,但我正在尝试使用“零配置体验”。为了以防万一,我已将其添加到问题中。