Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExtendedProtectionPolicy.PolicyEnforcement值不匹配。IIS的值为WhenSupported,而WCF传输的值为Never_Wcf_Security_Rest_Iis 7.5_Windows Authentication - Fatal编程技术网

ExtendedProtectionPolicy.PolicyEnforcement值不匹配。IIS的值为WhenSupported,而WCF传输的值为Never

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

我正在处理WCF REST服务的安全网站上工作。 一切正常,直到我开始保护我的网站。 我将身份验证模式从匿名更改为windows身份验证,并在global.asax文件中实现了自动化

对于采用MVC架构设计并使用内部服务的网站来说,一切正常,但RESTAPI工作不好

我已将安全配置添加到web.config绑定部分,如下所示:

    <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。

最终我找到了这个问题的解决方案:

这些变化发生在三个不同的地方:

  • IIS扩展保护应关闭
    功能
    内核模式身份验证应启用
  • web配置文件上的两个更改:

  • 在服务配置中插入
    address=“rest”

  • 在global.asax授权实现中,我在以下位置处理REST请求时不再使用cookie:
  • public void WindowsAuthentication\u OnAuthenticate(对象发送方,WindowsAuthenticationEventArgs args)
    

    现在它像忍者一样工作

    谢谢。我把所有的东西都整理好了,上面第1点是缺失的部分谢谢你的标签。直到找到这个线程,我才知道应该在web.config中添加它!我可以通过将extendedProtectionPolicy放在和标记中而不是放在其他位置来解决这个问题。
    <extendedProtectionPolicy policyEnforcement="WhenSupported"></extendedProtectionPolicy>