ExtendedProtectionPolicy.PolicyEnforcement值不匹配。IIS的值为WhenSupported,而WCF传输的值为Never
我正在处理WCF REST服务的安全网站上工作。 一切正常,直到我开始保护我的网站。 我将身份验证模式从匿名更改为windows身份验证,并在global.asax文件中实现了自动化 对于采用MVC架构设计并使用内部服务的网站来说,一切正常,但RESTAPI工作不好 我已将安全配置添加到web.config绑定部分,如下所示:ExtendedProtectionPolicy.PolicyEnforcement值不匹配。IIS的值为WhenSupported,而WCF传输的值为Never,wcf,security,rest,iis-7.5,windows-authentication,Wcf,Security,Rest,Iis 7.5,Windows Authentication,我正在处理WCF REST服务的安全网站上工作。 一切正常,直到我开始保护我的网站。 我将身份验证模式从匿名更改为windows身份验证,并在global.asax文件中实现了自动化 对于采用MVC架构设计并使用内部服务的网站来说,一切正常,但RESTAPI工作不好 我已将安全配置添加到web.config绑定部分,如下所示: <binding name="webHttpBindingWindows"> <security mode="TransportCr
<binding name="webHttpBindingWindows">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="Ntlm"></transport>
</security>
</binding>
以及:
有无:
<extendedProtectionPolicy policyEnforcement="WhenSupported"></extendedProtectionPolicy>
但我有一个例外:
IIS上配置的扩展保护设置与传输上配置的设置不匹配。ExtendedProtectionPolicy.PolicyEnforcement值不匹配。IIS的值为WhenSupported,而WCF传输的值为Never
有人知道怎么解决吗
如果我将IIS上的扩展保护设置为关闭,则根本无法进行身份验证。(我有浏览器弹出窗口,但无法使用任何用户帐户登录。)
谢谢,
Naftali。最终我找到了这个问题的解决方案: 这些变化发生在三个不同的地方:
功能
内核模式身份验证应启用
李>
address=“rest”
public void WindowsAuthentication\u OnAuthenticate(对象发送方,WindowsAuthenticationEventArgs args)
现在它像忍者一样工作 谢谢。我把所有的东西都整理好了,上面第1点是缺失的部分谢谢你的标签。直到找到这个线程,我才知道应该在web.config中添加它!我可以通过将extendedProtectionPolicy放在和标记中而不是放在其他位置来解决这个问题。
<extendedProtectionPolicy policyEnforcement="WhenSupported"></extendedProtectionPolicy>