您會收到"未經授權的 HTTP 錯誤 401.1-: 因為認證不正確,所以拒絕存取 」 錯誤訊息,當您嘗試存取網站的 IIS 6.0 應用程式集區

文章翻譯 文章翻譯
文章編號: 871179 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當您嘗試存取已設定為使用整合式 Windows 驗證只有 Microsoft Internet Information Services (IIS) 6.0 的網站時,您的使用者認證會提示您。當您嘗試登入時,您會再次收到 「 登入提示。您嘗試登入三次之後,您會收到下列錯誤訊息:
HTTP 錯誤 401.1-未授權: 因為認證不正確,所以拒絕存取。

發生的原因

如果下列情況皆成立,可能會發生這個問題:
  • IIS 6.0 Web 站台是 IIS 應用程式集區的一部分。
  • 本機帳戶或網域使用者帳戶下執行應用程式集區。
  • 網站設定為使用 [只整合式 Windows 驗證。
在這個案例中,當整合式 Windows 驗證 」 會嘗試使用 Kerberos,也可能無法正常 Kerberos 驗證。若要使用 Kerberos 驗證,服務必須在 Active Directory 目錄服務下執行服務帳戶下註冊其服務主要名稱 (SPN)。根據預設,Active Directory 登錄網路基本輸入/輸出系統 (NetBIOS) 的電腦名稱。使用中的目錄也允許使用網路服務或本機系統帳戶,使用 Kerberos。

解決方案

如果應用程式集區的本機帳戶下執行時,就會發生這個問題,請依照下列 「 解決方案 」 一節中的步驟。

若要解決這個問題,在 [網域使用者帳戶下執行應用程式集區時,設定 HTTP SPN 的 NetBIOS 名稱與網域使用者帳戶下執行應用程式集區的完整格式的網域名稱 (FQDN)。若要執行這項操作,請在網域控制站上執行下列步驟:

重要服務的 SPN 只能與一個帳號產生關聯。因此,如果您使用這個建議的解決方案,在不同的網域使用者帳戶下執行的任何其他應用程式集區不能與僅在整合式 Windows 驗證。
  1. 安裝 [Setspn.exe] 工具。若要取得 Microsoft Windows Server 2003 的 Setspn.exe 工具,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    970536 Windows Server 2003 Setspn.exe 支援工具更新
  2. 啟動命令提示字元中,然後再變更為 Setspn.exe 的安裝位置的目錄。
  3. 在命令提示字元中輸入下列命令。在每一行命令之後按 ENTER 鍵。
    setspn.exe-S http /IIS_computer's_NetBIOS_name 網域名稱\使用者名稱

    setspn.exe-S http /IIS_computer's_FQDN 網域名稱\使用者名稱
    附註使用者名稱 是使用者帳戶下執行應用程式集區。另外請注意,如果您在 Windows 2000 機器上,而不是在-S 參數使用-A 參數執行 [setspn.exe] 指令。
在設定的 HTTP 服務的 spn 作給網域使用者帳戶下執行應用程式集區後,您可以成功連線至網站而不會提示您的使用者認證。

其他可行方案

如果要暫時略過這個問題,如果您有多個不同的網域使用者帳戶下執行的應用程式集區,您必須強制 IIS 使用 NTLM 為您的驗證機制,如果您想要使用 [只整合式 Windows 驗證。若要執行這項操作,請在執行 IIS 的伺服器上執行下列步驟:
  1. 啟動命令提示字元。
  2. 找出並接著將變更為包含 Adsutil.vbs 檔的目錄。根據預設,這個目錄位於 C:\Inetpub\Adminscripts。
  3. 輸入下列命令,然後再按 ENTER 鍵:
    cscript adsutil.vbs 設定 w3svc/NTAuthenticationProviders"NTLM"
  4. 若要確認 NtAuthenticationProviders metabase 屬性設定為 [NTLM、 輸入下列命令,並按 ENTER:
    cscript adsutil.vbs get w3svc/NTAuthenticationProviders
    應該會傳回下列文字:
    NTAuthenticationProviders       : (STRING) "NTLM"

狀況說明

這種行為是經過設計規劃。

其他相關資訊

如果您使用 [只執行 IIS 的伺服器的 FQDN 設定 SPN,您要繼續您的使用者認證的 30 分鐘後。由於 Internet Explorer 會快取網域名稱系統 (DNS) 資訊的方式,就會發生在 30 分鐘的逾時。30 分鐘後,Internet Explorer 會還原成 NetBIOS 名稱。因此,您必須確定您也可以使用執行以避免被提示輸入使用者認證的 IIS 伺服器的 NetBIOS 名稱註冊 SPN。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
263558Internet Explorer 的 DNS 主機項目所使用的快取
如果要確認使用者帳戶下執行應用程式集區所註冊的 Spn,啟動命令提示字元中輸入下列命令,從 Setspn.exe 安裝所在的目錄,然後按 ENTER 鍵:
setspn.exe-l 使用者名稱
會傳回一份使用者帳戶註冊的 Spn。

網際網路資訊服務 (IIS) 7.0

如果發生了下列情況之一為真,則本文中所討論的主題也可以套用至 IIS 7.0:
  • 已停用核心模式驗證。
  • 已啟用核心模式 」 驗證,以及 useAppPoolCredentials 屬性是設定為 TRUE。

?考

如需關於 IIS 應用程式集區中使用整合式 Windows 驗證的詳細資訊,請造訪下列 Microsoft 網站:
整合式的 Windows 驗證 (IIS 6.0)
如需有關驗證失敗或在 IIS 中的存取控制失敗的詳細資訊,請造訪下列 Microsoft 網站:
驗證及存取控制診斷版本 1.0 (IIS 6.0)
附註AuthDiag 工具被設計來協助您,當您看到下列錯誤訊息之一:
  • 401.1 登入失敗
  • 401.3 ACL
「 AuthDiag 」 工具也可以協助您體驗 Kerberos 問題時。

屬性

文章編號: 871179 - 上次校閱: 2013年6月7日 - 版次: 6.0
這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 6.0
  • Microsoft Internet Information Services 7.0
關鍵字:?
kbtshoot kbprb kbmt KB871179 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:871179
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com