IIS 7.5服务器重启后使用Windows身份验证时提示输入凭据

时间:2020-04-21 16:47:27

标签: asp.net iis asp-classic iis-7.5 windows-authentication

Windows Server 2008 R2,IIS 7.5,在默认站点上实现Windows身份验证,并在本地Intranet站点上实现数十种经典ASP和asp.NET应用程序。任何访问该站点的用户将已经是域中经过身份验证的用户。服务器变量AUTH_USER将用于查询用户可以访问的应用程序的SQL表。

服务器级别设置(身份验证):

  • 扩展保护关闭
  • 启用内核模式身份验证-已选中
  • 提供商-NTLM然后进行协商
  • 已禁用表格,匿名和模拟

网站设置(身份验证):

  • 与上述相同

应用程序池

  • DefaultAppPool .NET Framework v2.0集成的NetworkService身份
  • 经典.NET AppPool .NET Framework v2.0经典版 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集成的ApplicationPoolIdentity 身份

期望的行为-用户打开网站,不提示输入用户名和密码,并自动进行身份验证并显示适合其ID的菜单。显示到同一IIS实例上其他应用程序的超链接。用户单击超链接&将被带到应用程序,而无需提示输入Windows用户名和密码。

会发生什么-IIS服务器重新启动时,用户首次访问该站点时,系统会提示他们输入Windows用户名和密码。如果输入了信息(或单击了取消按钮),菜单仍然显示。后续的应用程序还将在重新引导后首次访问时提示输入用户名和密码,如果用户单击“取消”(或输入登录信息),则会将其带到该应用程序。用户随后再次访问相同的站点,则不会再次提示用户输入。但是,重新启动服务器后,将如上所述提示用户。

在W3SVC日志文件中,第一个结果是401.1 -2146893042,第二个结果是401.2.5。

我确定肯定会有IIS配置设置,权限,缓存等,或者其他一些被忽略的调整。当访问站点(IE 11)时,AUTH_USER是正确的,并且该用户的应用程序列表也是正确的。

为什么提示输入用户名和密码,并且仅在重新启动Web服务器时提示输入?而且,为什么在提示时单击“取消”按钮也显示菜单?

1 个答案:

答案 0 :(得分:1)

当我们面临类似问题时。我们可以查看status.sub-status代码和win32-status。错误消息-2146893042显示IIS服务器未收到任何用户凭据。我以前遇到过这个问题。当NTLM的优先级高于kerberos时,可能会发生这种情况。

要解决此问题,请首先设置协商提供商。

enter image description here