IIS 7.5 在服务器重启后使用 Windows 身份验证时提示输入凭据
IIS 7.5 Prompting for credentials when using Windows Authentication after server reboot
Windows Server 2008 R2,IIS 7.5,在默认站点上实施 Windows 身份验证,在本地 Intranet 站点上实施数十个经典 ASP 和 asp.NET 应用程序。访问该站点的任何用户都已经是该域中经过身份验证的用户。服务器变量 AUTH_USER 将用于查询 SQL table 用户可以访问的应用程序。
服务器级别设置(身份验证):
- 关闭扩展保护
- 启用内核模式身份验证 - 选中
- 提供商 - NTLM 然后协商
- 禁用表单、匿名和模拟
站点设置(身份验证):
- 同上
应用程序池
- DefaultAppPool .NET Framework v2.0 集成网络服务标识
- Classic .NET AppPool .NET Framework v2.0 Classic
ApplicationPoolIdentity 身份
- ASP.NET v4.0 经典 .NET Framework v4.0 经典
ApplicationPoolIdentity 身份
- ASP.NET v4.0 32Bit .NET Framework v4.0 集成
ApplicationPoolIdentity 身份
- ASP.NET v4.0 .NET Framework v4.0 Integrated ApplicationPoolIdentity
身份
期望的行为 - 用户打开网站,系统不会提示输入用户名和密码,并且会自动进行身份验证并显示适合其 ID 的菜单。显示指向同一 IIS 实例上其他应用程序的超链接。用户单击超链接并被带到应用程序,而不会提示输入 Windows 用户名和密码。
发生了什么 - 当 IIS 服务器重新启动时,用户第一次访问该站点时,系统会提示他们输入 Windows 用户名和密码。如果输入信息(或单击取消按钮),菜单仍会显示。后续应用程序在重启后首次访问时也会提示输入用户名和密码,如果用户单击取消(或输入登录信息),他们将被带到该应用程序。以后访问相同站点时,不会再次提示用户。但是,当服务器重新启动时,会提示用户如上所述。
在 W3SVC 日志文件中,第一个结果是 401.1 -2146893042,第二个结果是 401.2.5。
我确定一定有 IIS 配置设置、权限、缓存等或其他一些被忽略的调整。访问站点时(IE 11),AUTH_USER 是正确的,用户的应用程序列表也是正确的。
为什么提示输入用户名和密码,并且仅在重新启动 Web 服务器后才提示输入用户名和密码?而且,为什么在提示时单击“取消”按钮也会显示菜单?
当我们遇到类似问题时。我们可以查看 status.sub-status code 和 win32-status。错误消息 -2146893042 显示 IIS 服务器未收到任何用户凭据。我以前遇到过这个问题。当 NTLM 的优先级高于 kerberos 时,可能会发生这种情况。
要解决此问题,请先设置协商提供商。
Windows Server 2008 R2,IIS 7.5,在默认站点上实施 Windows 身份验证,在本地 Intranet 站点上实施数十个经典 ASP 和 asp.NET 应用程序。访问该站点的任何用户都已经是该域中经过身份验证的用户。服务器变量 AUTH_USER 将用于查询 SQL table 用户可以访问的应用程序。
服务器级别设置(身份验证):
- 关闭扩展保护
- 启用内核模式身份验证 - 选中
- 提供商 - NTLM 然后协商
- 禁用表单、匿名和模拟
站点设置(身份验证):
- 同上
应用程序池
- DefaultAppPool .NET Framework v2.0 集成网络服务标识
- Classic .NET AppPool .NET Framework v2.0 Classic ApplicationPoolIdentity 身份
- ASP.NET v4.0 经典 .NET Framework v4.0 经典 ApplicationPoolIdentity 身份
- ASP.NET v4.0 32Bit .NET Framework v4.0 集成 ApplicationPoolIdentity 身份
- ASP.NET v4.0 .NET Framework v4.0 Integrated ApplicationPoolIdentity 身份
期望的行为 - 用户打开网站,系统不会提示输入用户名和密码,并且会自动进行身份验证并显示适合其 ID 的菜单。显示指向同一 IIS 实例上其他应用程序的超链接。用户单击超链接并被带到应用程序,而不会提示输入 Windows 用户名和密码。
发生了什么 - 当 IIS 服务器重新启动时,用户第一次访问该站点时,系统会提示他们输入 Windows 用户名和密码。如果输入信息(或单击取消按钮),菜单仍会显示。后续应用程序在重启后首次访问时也会提示输入用户名和密码,如果用户单击取消(或输入登录信息),他们将被带到该应用程序。以后访问相同站点时,不会再次提示用户。但是,当服务器重新启动时,会提示用户如上所述。
在 W3SVC 日志文件中,第一个结果是 401.1 -2146893042,第二个结果是 401.2.5。
我确定一定有 IIS 配置设置、权限、缓存等或其他一些被忽略的调整。访问站点时(IE 11),AUTH_USER 是正确的,用户的应用程序列表也是正确的。
为什么提示输入用户名和密码,并且仅在重新启动 Web 服务器后才提示输入用户名和密码?而且,为什么在提示时单击“取消”按钮也会显示菜单?
当我们遇到类似问题时。我们可以查看 status.sub-status code 和 win32-status。错误消息 -2146893042 显示 IIS 服务器未收到任何用户凭据。我以前遇到过这个问题。当 NTLM 的优先级高于 kerberos 时,可能会发生这种情况。
要解决此问题,请先设置协商提供商。