【发布时间】:2013-08-03 22:12:43
【问题描述】:
我正在使用 Windows 身份验证和 ASP.NET 模拟通过 IIS7 对 WCF 服务上的用户进行身份验证。
在本地调试时,我可以看到 System.Security.Principal.WindowsIdentity.GetCurrent().Name 与我的 Windows 凭据相同。当我将此服务部署到服务器时,除非启用匿名身份验证,否则 WCF 无法运行。
那么,我们如何让这个 WCF 服务在匿名身份验证禁用的服务器上运行?
更新 1:尝试两种建议后的错误消息:
主机上配置的认证方案 ('IntegratedWindowsAuthentication') 不允许那些在 绑定“WebHttpBinding”(“匿名”)。请确保 SecurityMode 设置为 Transport 或 TransportCredentialOnly。 此外,这可以通过更改身份验证来解决 此应用程序的方案通过 IIS 管理工具,通过 ServiceHost.Authentication.AuthenticationSchemes 属性,在 应用程序配置文件在 元素,通过更新绑定上的 ClientCredentialType 属性, 或通过调整 AuthenticationScheme 属性 HttpTransportBindingElement。
UPDATE 2:已按以下方式设置身份验证:
应用程序池:
- 身份 = 网络服务
网站:
- 匿名身份验证 = 禁用
- ASP.NET 身份验证 = 启用
- Windows 身份验证 = 启用
WCF 应用程序:
- 匿名身份验证 = 禁用
- ASP.NET 身份验证 = 启用
- Windows 身份验证 = 启用
【问题讨论】:
标签: wcf authentication iis impersonation