我已经阅读了有关该主题的大部分文章,但没有任何文章可以解决这个问题,所以我想是时候发布文章了。
我有一个内部网站,在我们的网络内使用 Windows 身份验证。几个月来一切都运行良好,但突然间,当我周末回来时,它会永远提示用户输入用户名和密码。即使您使用有效的凭据,它也不会工作。即使您取消提示(它将永远要求输入凭据),也不会显示错误消息。跟踪显示返回了 401.1,但我可以保证发送的是有效的凭据。我不明白 1) 为什么它首先会提示,以及 2) 为什么它不再接受凭据。
以下是我迄今为止采取的步骤:
- 确保 NTLM 位于提供商列表中的第一位
- 确保 Anon auth 已禁用
- 禁用环回
- 重启
我还确保审计安全日志中没有身份验证失败。我确实启用了失败请求跟踪,在与 Windows 身份验证相关的日志中我唯一看到的是一条消息:
安全包中没有可用的凭证
然而,许多文章都提到这与 Kerberos 有关,而我甚至没有 Kerberos 提供商,所以我不确定这指的是什么。
有什么想法吗?如果你们需要的话,我可以发布跟踪日志。
答案1
事实证明,Server 2008 R2 在连接到域时确实存在错误,并且应用程序池身份的密码被更改或计算机密码本身被更改。这会导致所有身份验证方法失败,原因如下:
出现此问题的原因是计算机密码更改后,全局凭据中的标志设置不正确。因此,重新启动 IIS 服务后身份验证会失败。
此解决方案由 Microsoft 以修补程序的形式提供。以下是知识库文章的链接以及可下载修补程序的位置: 在 Windows 7 或 Server 2008 R2 中更改服务器的计算机密码后,用户无法访问 IIS 托管的网站