我有一个使用 Windows 身份验证托管 IIS 7 的 Intranet 站点,配置为接受协商。我还将配置设置设置为使用每个连接的 Kerberos(非 NTLM)身份验证:
<system.webServer>
<security>
<authentication>
<windowsAuthentication authPersistNonNTLM="true" />
</authentication>
</security>
</system.webServer>
现在 Chrome 使用 Kerberos 票证正确地进行了一次身份验证,然后不会在后续请求中发送任何授权标头。
然而,Internet Explorer 确实会随每个请求发送一个大的 Kerberos 票证。服务器正在发回正确的Persist-Auth: true
标头。所以 IE 应该知道不要打扰预认证。这种行为至少可以在 Windows 7 64 位的 IE9 和 IE10 中观察到。
这种行为还有其他原因吗?有办法解决吗?
另请注意,我在 IIS7 上使用内核模式并且没有虚拟目录安全性。
如果我有 IE9/IE10 与 NTLM 连接,它不会预先进行身份验证(这是正确的行为)。
我希望有一些神奇的标题可以手动添加到我的服务器响应中,这样 IE 就会正常运行......