为什么我无法登录到服务器上受 Windows 保护的 IIS 7.5 目录?

use*_*146 13 windows-server-2008 http authentication iis-7.5

我有一个带有 admin 子目录的网站,该目录受集成的 Windows 身份验证保护。从远程 PC 完美运行。但是当我尝试访问服务器本身上的这些页面时,我遇到了授权失败。我使用的是正确的主机名,而不是 localhost。试过 Chrome 和 IE,结果一样。

有什么建议?

pho*_*bus 22

您几乎肯定会遇到 IIS 5.1 引入的 Windows 环回检查。这是一项安全功能,可避免对系统进行某些类型的反射攻击。

Microsoft 有一篇描述变通方法的知识库文章。它们基本上归结为修改注册表以禁用环回检查,或允许某些主机名(例如您的本地主机名或站点名称)进行反向连接。

您可以通过 PowerShell 快速禁用检查:

New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -Value "1" -PropertyType dword
Run Code Online (Sandbox Code Playgroud)

以下是微软的官方说明。请注意,虽然以下说明指示重新启动,但我发现 IE 通常会立即获取更改。

方法 1:指定主机名(如果需要 NTLM 身份验证的首选方法)

  1. 将 DisableStrictNameChecking 注册表项设置为 1
  2. 单击开始,单击运行,键入regedit,然后单击确定
  3. 在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
  4. 右键单击MSV1_0,指向New,然后单击Multi-String Value
  5. 键入BackConnectionHostNames,然后按ENTER
  6. 右键单击BackConnectionHostNames,然后单击修改
  7. 在“数值数据”框中,键入本地计算机上站点的主机名或主机名,然后单击“确定”
  8. 退出注册表编辑器,然后重新启动该IISAdmin服务。

方法二:禁用环回检查(不太推荐的方法)

  1. 将 DisableStrictNameChecking 注册表项设置为 1
  2. 单击开始,单击运行,键入regedit,然后单击确定
  3. 在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  4. 右键单击Lsa,指向New,然后单击DWORD Value
  5. 键入DisableLoopbackCheck,然后按ENTER
  6. 右键单击DisableLoopbackCheck,然后单击修改
  7. 数值数据框中,键入1,然后单击确定
  8. 退出注册表编辑器,然后重新启动计算机。

附录:

要将 DisableStrictNameChecking 注册表项设置为 1:

  1. 单击开始,单击运行,键入regedit,然后单击确定
  2. 在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
  3. 右键单击Parameters,指向New,然后单击DWORD Value
  4. 键入DisableStrictNameChecking,然后按ENTER
  5. 右键单击DisableStrictNameChecking,然后单击修改
  6. 数值数据框中,键入1,然后单击确定
  7. 退出注册表编辑器,然后重新启动计算机。