【发布时间】:2009-04-17 21:15:26
【问题描述】:
谁能给清楚的解释一下使用的区别
-
clientCredentialType=Windows, 和 clientCredentialType=Ntlm
在托管 WCF 服务时在服务器端 Web.config 中?
我有一个用于与现有客户端互操作的 SOAP 1.1 (basicHttpBinding) 服务。它使用 ASP.NET 角色,因此需要对客户端进行身份验证。
当我使用VS2005(Cassini)服务器托管服务时,我必须如上指定ClientCredentialType=Ntlm,并在VS2005的项目属性中勾选Ntlm认证框。 ClientCredentialType=Windows 不起作用 - 客户得到:
401 未经授权的错误
但是,当我在 IIS 下运行时,情况正好相反:ClientCredentialType=Windows 有效,ClientCredentialType=Ntlm 失败。
谁能解释一下,最好建议一种方法,我可以使用相同的 web.config 文件在 Cassini 和 IIS 中运行服务?
更新
我的开发机器上有 .NET 3.5 SP1,它是在域中运行的 XP SP2。因此 Cassini 在域帐户下运行,而 IIS 5.1 在本地帐户下运行。
我想知道这是否与这些文章中描述的 .NET 3.5SP1 中的重大变化有关。
http://www.aspnetpro.com/newsletterarticle/2008/12/asp200812ab_l/asp200812ab_l.asp http://msmvps.com/blogs/alvin/archive/2008/11/14/net-3-5-sp1-breaking-change-to-wcf.aspx http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=354236
情况听起来类似于clientCredentialType=Windows 在服务器在域帐户下运行时失败(这是我使用 Cassini 的情况 - 作为我的普通域用户帐户运行),并且在本地帐户下运行时工作(这是我的IIS 的情况)。
问题是建议的修复需要更改 WCF 客户端配置文件 - 但在我的情况下,我将 SOAP 1.1 (basicHttpBinding) 与非 WCF 客户端一起使用。
【问题讨论】:
标签: wcf visual-studio-2005 cassini