文章編號: 323176 - 上次校閱: 2007年5月18日 - 版次: 4.4

如何在 ASP.NET 中實作 Windows 驗證和授權

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

本文將逐步告訴您,如何實作 Windows 驗證和授權在 ASP.NET 應用程式中的。

若要在安全性的 Windows 和 ASP.NET 中,使用 [內建],請群組及使用者上實作 Windows 驗證和授權。若要將 Windows 驗證,您必須調整 Microsoft 網際網路資訊服務 (IIS) 及 ASP.NET 應用程式的 Web.config 檔中的設定。

需求

  • Microsoft Windows 2000 專業版,Windows 2000 Server,Windows 2000 進階伺服器或 Windows XP 商用版
  • Microsoft.NET 架構
  • Microsoft 網際網路資訊服務 (IIS)
  • Microsoft Visual Studio.NET

驗證和授權

Windows 驗證 和 Windows 授權 是經常 interchanged 的兩個詞彙。但是,它們並沒有相同的意義。Windows 驗證可以讓收件者,以判斷使用者的識別。Windows 授權決定使用者可能取得存取資源。

設定 Windows 驗證的 Web 應用程式

若要進行您的 Web 應用程式進行 Windows 驗證,請依照下列步驟執行:
  1. 建立名為 ASPNETWinAuth 的 ASP.NET Web 應用程式。 依預設值,theWebForm1.aspx 檔案出現。
  2. 在的 WebForm1.aspx 的 [HTML] 檢視以下列的範例程式碼取代現有的程式碼:
    <%=User.Identity.Name%>
    
  3. 按一下 [開始],指向 [程式集]、 指向 [系統管理工具,然後再按一下 [網際網路資訊服務]。
  4. 網際網路資訊服務 MMC 會出現。展開 電腦,然後再展開 [使用 Windows 的 Web 網站驗證。
  5. 按一下 ASPNETWinAuth 網站應用程式。
  6. 按一下 [動作] 功能表 內容]
  7. 在 [內容],按一下 [目錄安全 設定] 索引標籤。
  8. 在 [匿名存取及驗證控制,按一下 [編輯]。
  9. 在 [驗證方法,按一下以選取 [整合式 Windows 驗證]。按一下以清除所有其他核取方塊。
  10. 按一下 [確定]
  11. 在 [內容],按一下 [確定]。ASPNETWinAuth Web 應用程式正在設定以接受有效的使用者帳戶。

設定 ASP.NET 應用程式

您為整合式 Windows 驗證設定 IIS 網站之後,您必須設定 ASP.NET 應用程式,以辨識已驗證的使用者。若要執行此動作,您必須變更 Web.config 檔。在的 Web.config 檔案中找出 <驗證 > 標記,然後設定下列範例中的要 Windows模式 屬性:
<authentication mode="Windows" />

測試驗證

若要測試您的 Windows 驗證設定,請依照下列步驟執行:
  1. 在 Microsoft Internet Explorer 中檢視 [WebForm1.aspx 頁面。此頁面位於 Http://Localhost 資料夾中。例如:
    http://Localhost/ASPNETWinAuth/WebForm1.aspx
    因為整合式 Windows 驗證使用驗證的用戶端電腦上目前的 Windows 使用者資訊,它不會立即提示使用者輸入使用者名稱及密碼。不過,驗證交換無法識別使用者,一個對話方塊,會出現,提示使用者用 Windows 使用者帳戶使用者名稱及密碼。
  2. 輸入有效的使用者名稱和密碼。當頁面載入時,您的使用者名稱會出現以下列格式:
    網域名稱 \ 使用者名稱

限制存取

在 ASP.NET 中,您設定授權應用程式在 Web.config 檔中加入設定。您可以指定哪些使用者或群組允許有何種資源存取權限,如下所示:
  • 若要允許所有使用者的名為能夠存取您的資源管理員的 NT 群組,使用下列程式碼:
    <configuration>
      <system.web>
        <authorization>
          <allow roles="domainname\Managers" />
          <deny users="*" />
        </authorization>
      </system.web>
    </configuration>
    
  • 若要允許只有特定使用者存取,使用下列程式碼:
    <configuration>
      <system.web>
        <authorization>
          <allow users="domainname\user1,domainname\user2,domainname\user3" />
          <deny users="*" />
        </authorization>
      </system.web>
    </configuration>
    
    附註 您可以使用逗號來指定多個角色或使用者分隔清單。請確認您在您指定組態檔項目和相關聯的屬性值時,使用正確的大小寫。這個程式碼會區分大小寫。

?考

如更多有關 ASP.NET 安全性和組態概觀的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
306590? (http://support.microsoft.com/kb/306590/ ) ASP.NET 安全性概觀
307626? (http://support.microsoft.com/kb/307626/ ) ASP.NET 組態概觀
如需驗證和授權的項目相關的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfauthenticationsection.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfauthenticationsection.asp)
http://msdn2.microsoft.com/en-us/library/8d82143t(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/8d82143t(vs.71).aspx)
http://msdn.microsoft.com/msdnmag/issues/02/04/ASPSec/default.aspx (http://msdn.microsoft.com/msdnmag/issues/02/04/ASPSec/default.aspx)

這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
關鍵字:?
kbmt kbwebforms kbconfig kbauthentication kbhowtomaster kbsecurity KB323176 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:323176? (http://support.microsoft.com/kb/323176/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。