成員資格與角色管理提供者——現在 ASP.NET 2.0 包含內建成員資格與角色管理服務。因這些服務都是提供者驅動的,你可輕易變更或用自訂實作取代。
登入控制項——新的登入控制項為站點基於認證與授權的 UI(如登入表單、建立用戶表單、密碼找回、已登入用戶或角色的客製化 UI)提供基本模組。這些控制項利用 ASP.NET 2.0 內建成員資格與角色服務與站點定義的用戶與角色資訊互動。
大多數 Web 應用程式重要部分是識別用戶並控制資源存取權。偵測請求實體身分操作即認證。通常為認證,用戶必須提供憑證,如帳號/密碼。一旦認證過身分有效,必須偵測該身分能否存取指定資源,此過程即授權。ASP.NET 與 IIS 共同為應用程式提供認證與授權服務。
COM 物件重要特性是能控制運行 COM 物件程式碼的身分。當 COM 物件用請求實體身分運行程式碼時,稱為模擬。ASP.NET 架構應用程式可選擇模擬請求。
有些應用程式還希望根據請求身分或請求身分所屬角色動態客製化內容。ASP.NET 架構應用程式可動態偵測目前請求身分是否屬於某角色。例如,應用程式可能希望偵測目前用戶是否屬於管理員角色,以便為管理員有條件生成內容。
ASP.NET 2.0 成員資格特性使你建立與管理用戶更容易。成員資格一般與另一新特性角色管理器一起運作。角色管理器為建立角色與指定用戶給角色提供底層結構。當成員資格、角色管理器特性與表單認證一起工作時,ASP.NET 2.0 即可為建立、認證與授權用戶提供端對端支援。
成員資格與角色管理器都用基於提供者模型設計。提供者從特性暴露的類別與商務邏輯中提取特性物理資料儲存。成員資格與角色管理器特性都帶有 Microsoft SQL Server 提供者。成員資格還帶有處理 Active Directory 和 ADAM 的提供者。角色管理器帶有利用 Windows Server 2003 授權管理特性的提供者。你可建立自訂提供者並配置與成員資格、角色管理器特性一起使用。使用自訂提供者時,利用成員資格與角色管理器特性頁面仍繼續工作,毫無改變。
登入控制項是一組自訂伺服器控制項,為認證與授權事務提供公用使用者介面。登入控制項利用成員資格、角色管理器與表單認證特性功能。
ASP.NET 與 IIS 支援基本、Digest 和 Windows 認證。ASP.NET 支援微軟 Passport 認證服務,支援單一登入服務與用戶設定服務。ASP.NET 還支援基於表單認證的強大服務。基於表單認證使用 Cookie 認證用戶,允許應用程式執行自己的憑證驗證過程。
要認識到,ASP.NET 認證服務受 IIS 提供認證服務制約。例如,為在 IIS 應用程式使用基本認證,必須用 Internet 服務管理工具配置應用程式使用基本認證。
ASP.NET 提供兩種授權服務:
為演示差異,看一例子:假設某應用程式允許匿名用戶用 IUSR_MYMACHINE 帳號存取。當某 ASP.NET 頁面(如 "/default.aspx")請求通過認證後,會依據該檔案(如 "c:\inetpub\wwwroot\default.aspx")ACL 檢查,看 IUSR_MYMACHINE 帳號是否有權限讀取此檔案。若有權限,授權存取。若 Web 內容位於 NTFS 磁碟區並已配置虛擬目錄使用 Windows 認證,檔案授權會自動執行。