使用带有指向 IIS 服务器的 A 记录的 URL 浏览运行 IIS 的服务器上的网站时,IIS 中的 Windows Auth 不起作用

使用带有指向 IIS 服务器的 A 记录的 URL 浏览运行 IIS 的服务器上的网站时,IIS 中的 Windows Auth 不起作用

我有一个在 IIS 上运行的网站,使用 Windows 身份验证。

在网站级别,在“身份验证”下,我仅Windows Authentication启用了(仅 NTLM 作为提供商)。

在虚拟目录级别,在“身份验证”下,我已ASP.NET Impersonation启用Windows Authentication(仅将 NTLM 作为提供程序)。(ASP.NET Authentication在此处禁用不会改变任何内容)

  • 运行 IIS 的服务器的 IP 地址是:172.0.0.10
  • 运行 IIS 的服务器的计算机名称是:myiis服务器
  • 运行 IIS 的服务器上的 FQDN 是:myiisserver.mydomain.com
  • DNS“A 记录”指向 172.0.0.10:myapp.mydomain.com

在网站绑定上,我有:

Type  |  IP Address      |  Port  |  Host Name
--------------------------------------------------------------
http  |  All Unassigned  |  80    |  localhost
http  |  All Unassigned  |  80    |  myiisserver
http  |  All Unassigned  |  80    |  myiisserver.mydomain.com
http  |  All Unassigned  |  80    |  myapp.mydomain.com

这是我在 IIS 服务器上运行的唯一网站。

运行网站和虚拟目录的应用程序池是相同的,并使用“NetworkService”作为标识。

在 IIS 服务器和网络中的其他工作站上:

  • myiisserver 已添加到“受信任的站点”
  • myiisserver.mydomain.com 已添加到“受信任的站点”
  • myapp.mydomain.com 已添加到“受信任的站点”

在受信任的站点区域,Automatic logon using current user name and password在 IIS 服务器和其他工作站上进行选择。

在 Internet 选项 -> 高级上,Enable Integration Windows Authentication在 IIS 服务器和其他工作站上启用。

在网络中的其他工作站上:

在 IIS 服务器上:

答案1

更新运行 IIS 的服务器上的下面的注册表项可解决该问题!

  1. 在注册表编辑器中,找到并单击以下注册表项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

  2. 右键单击MSV1_0,指向新的,然后点击多字符串值

  3. 键入BackConnectionHostNames,然后按 ENTER。

  4. 右键单击BackConnectionHostNames,然后单击调整

  5. 在“数值数据”框中,键入本地计算机上的站点的主机名或主机名(例如,myapp.mydomain.com),然后单击“确定” OK

注册表编辑器中的 BackConnectionHostNames 注册表项值

答案2

slayernoah 的解决方案非常有效,但我想补充一点,即使网站是通过互联网而不是内部网浏览,上述解决方案也能发挥作用。另外,除了

  1. 在 IIS 网站上启用 Windows 集成身份验证。
  2. 添加注册表项并将每个 Cname / Host 添加在单独的行上

这解决了这个问题并节省了大量时间

相关内容