我使用Windows身份验证和ASP.NET模拟,通过IIS7对用户进行WCF服务身份验证。如何模拟用户到WCF服务?
在本地调试时,我能够看到System.Security.Principal.WindowsIdentity.GetCurrent()。名称与我的Windows凭据相同。当我将此服务部署到服务器时,除非启用匿名身份验证,否则WCF将无法运行。
那么,我们如何得到这个WCF服务与匿名验证禁用在服务器上运行?
的认证方案主机 ( 'IntegratedWindowsAuthentication')上配置不允许那些 的结合 '的WebHttpBinding' 配置('匿名:尝试都建议后的错误消息:
UPDATE 1 “)。请确保将 SecurityMode设置为Transport或TransportCredentialOnly。 此外,这可以通过改变认证 方案为通过IIS管理工具本申请中,通过 的ServiceHost.Authentication.AuthenticationSchemes属性,则 应用配置文件中的 元件,通过在更新ClientCredentialType属性来解决绑定, 或通过调整 HttpTransportBindingElement上的AuthenticationScheme属性。
更新2:
应用程序池:该认证以下面的方式设置
- 身份=网络服务
网站:
- 匿名身份验证=禁用
- ASP.NET验证=启用
- Windows身份验证=启用
WCF应用:
- 匿名身份验证=禁用
- ASP.NET验证=启用
- Windows身份验证=已启用
谢谢。但是,我们需要使用webHttpBinding而不是basicHttpBinding,这是为了使我们能够为服务定义默认行为。请看看这个问题,看看我们目前收到的错误信息。 – aleafonso