wcf数据服务windows身份验证问题

时间:2011-05-10 01:19:42

标签: wcf-data-services

我有一个WCF数据服务,在web.config中我使用了

<authentication mode="Windows" />

我正在尝试避免任何绑定配置,所以此时使用了none。

我正在从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

使用成功的新NetworkCredential(“用户名”,“$ password”,“MyDomain”)时,Auth标头

域名:MyDomain

用户:用户名

主持人:PC-59

PS。为了记录,这是我的服务配置:

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior>          
      <serviceMetadata httpGetEnabled="true" />          
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />        

1 个答案:

答案 0 :(得分:0)

看看Alex在这里写的认证博客系列:http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/

它描述了不同的身份验证方案及其行为方式。其中一个是上面的(它还描述了客户端发出两个请求的原因以及如果你想要如何克服它)。

希望这有帮助,

Monica Frintu