Windows-Server-2008
為什麼我無法登錄伺服器上受 Windows 保護的 IIS 7.5 目錄?
我有一個帶有受集成 Windows 身份驗證保護的管理子目錄的網站。在遠端 PC 上完美執行。但是當我嘗試訪問伺服器本身上的這些頁面時,我會遇到授權失敗。我使用的是正確的主機名,而不是 localhost。試過 Chrome 和 IE,結果一樣。
有什麼建議麼?
您幾乎肯定會遇到 IIS 5.1 引入的 Windows 環回檢查。這是一項安全功能,可避免針對系統的某些類型的反射攻擊。
Microsoft 有一篇KB 文章描述了解決方法。他們基本上歸結為修改系統資料庫以禁用環回檢查,或允許某些主機名(例如您的本地主機名或站點名)進行反向連接。
您可以通過 PowerShell 快速禁用檢查:
New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -Value "1" -PropertyType dword
以下是微軟的官方說明。請注意,儘管下面的說明指示重新啟動,但我發現 IE 通常會立即獲取更改。
方法 1:指定主機名(如果需要 NTLM 身份驗證,首選方法)
- 將 DisableStrictNameChecking 系統資料庫項設置為 1。
- 點擊開始,點擊執行,鍵入regedit,然後點擊確定。
- 在系統資料庫編輯器中,找到並點擊以下系統資料庫項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
- 右鍵點擊MSV1_0,指向新建,然後點擊多字元串值。
- 鍵入BackConnectionHostNames,然後按
ENTER
。- 右鍵點擊BackConnectionHostNames,然後點擊修改。
- 在數值數據框中,鍵入本地電腦上站點的主機名或主機名,然後點擊確定。
- 退出系統資料庫編輯器,然後重新啟動
IISAdmin
服務。方法2:禁用環回檢查(不太推薦的方法)
- 將 DisableStrictNameChecking 系統資料庫項設置為 1。
- 點擊開始,點擊執行,鍵入regedit,然後點擊確定。
- 在系統資料庫編輯器中,找到並點擊以下系統資料庫項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
- 右鍵點擊Lsa,指向新建,然後點擊DWORD 值。
- 鍵入DisableLoopbackCheck,然後按
ENTER
。- 右鍵點擊DisableLoopbackCheck,然後點擊修改。
- 在數值數據框中,鍵入1,然後點擊確定。
- 退出系統資料庫編輯器,然後重新啟動電腦。
附錄:
要將 DisableStrictNameChecking 系統資料庫項設置為 1:
- 點擊開始,點擊執行,鍵入regedit,然後點擊確定。
- 在系統資料庫編輯器中,找到並點擊以下系統資料庫項:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
- 右鍵點擊參數,指向新建,然後點擊DWORD 值。
- 鍵入DisableStrictNameChecking,然後按
ENTER
。- 右鍵點擊DisableStrictNameChecking,然後點擊修改。
- 在數值數據框中,鍵入1,然後點擊確定。
- 退出系統資料庫編輯器,然後重新啟動電腦。