共用方式為


成員資格簡介

更新:2007 年 11 月

ASP.NET 成員資格賦予您一個驗證和儲存使用者認證的內建方法。因此,ASP.NET 成員資格可協助您管理網站中的使用者驗證。您可以搭配 ASP.NET 表單驗證或 ASP.NET 登入控制項使用 ASP.NET 成員資格,建立驗證使用者的完整系統。

ASP.NET 成員資格支援下列的機能:

  • 建立新的使用者和密碼。

  • 將成員資格資訊 (使用者名稱、密碼和支援資料) 儲存在 Microsoft SQL Server、Active Directory 或替代的資料存放區中。

  • 驗證造訪您網站的使用者。您可以利用程式設計方式來驗證使用者,或者使用 ASP.NET 登入控制項,建立需要少數程式碼或不需要程式碼的完整驗證系統。

  • 管理密碼,包括建立、變更和重設密碼。根據您選擇的成員資格選項,成員資格系統也可以提供自動化密碼重設系統,此系統需要使用者提供問題和回應。

  • 公開已驗證使用者的唯一識別,您可以在自己的應用程式中使用這個識別,而且這個識別也可以與 ASP.NET 個人化和角色管理 (授權) 系統整合

  • 指定自訂的成員資格提供者,它可讓您取代成自己的程式碼,來管理成員資格和維護自訂資料存放區中的成員資格資料

成員資格、角色和使用者設定檔

雖然成員資格是 ASP.NET 中用於驗證的獨立功能,但是它可以與 ASP.NET 角色管理整合,以提供授權服務給您的網站。成員資格也可以與使用者設定檔整合,以提供為個別使用者量身訂作的應用程式自訂功能。如需詳細資訊,請參閱使用角色管理授權ASP.NET 設定檔屬性概觀

成員資格如何運作

若要使用成員資格,首先必須設定成員資格以適合網站。大略上,您將遵循下列步驟:

  1. 將成員資格選項指定為網站組態的一部分。根據預設,已啟用成員資格。您也可以指定想要使用哪一個成員資格提供者 (實際說來,這表示您需指定想要將成員資格資訊保存在哪一類型的資料庫)。預設提供者使用 Microsoft SQL Server 資料庫。您也可以選擇使用 Active Directory 來儲存成員資格資訊,或您可以指定自訂提供者。如需可以在 ASP.NET 應用程式的 Web.config 檔中指定的成員資格設定選項詳細資訊,請參閱設定 ASP.NET 應用程式使用成員資格

  2. 設定您的應用程式來使用表單驗證 (不同於 Windows 或 Passport 驗證)。您通常會指定要保護應用程式中的某些頁面或應用程式,而且只有已驗證的使用者才能存取它們。

  3. 定義要用於成員資格的使用者帳戶。您可以有不同的作法。可以使用網站管理工具,其中提供可用來建立新使用者的類似精靈介面。或者,您可以建立「新增使用者」ASP.NET 網頁,在這裡您可以收集使用者名稱和密碼 (以及選用的電子郵件地址),然後使用名為 CreateUser 的成員資格函式,在成員資格系統中建立新的使用者。

現在您可以使用成員資格,驗證應用程式中的使用者。最常提供的是登入表單,它可能是個別頁面,或是首頁上的特殊區域。您可以使用 ASP.NET TextBox 控制項,手動建立登入表單,或您可以使用 ASP.NET 登入控制項。因為您已設定應用程式來使用表單驗證,所以如果未驗證的使用者要求受保護的頁面,ASP.NET 將自動顯示登入頁面。

注意事項:

ASP.NET 登入控制項 (LoginLoginViewLoginStatusLoginNamePasswordRecovery) 幾乎封裝所有邏輯,提示使用者提供認證並在成員資格系統中驗證認證所需的邏輯。

如果您使用登入控制項,它們將自動使用成員資格系統來驗證使用者。如果您已手動建立了登入表單,則可以提示使用者輸入使用者名稱和密碼,然後呼叫 ValidateUser 方法來執行驗證。在驗證使用者之後,可以使用表單驗證來持續保存使用者的相關資訊 (例如,如果使用者的瀏覽器接受 Cookie,就會使用加密的 Cookie 來保存資訊)。登入控制項會自動執行這項工作。如果您已手動建立了登入表單,則可以呼叫 FormsAuthentication 類別的方法,建立 Cookie 並將它寫入至使用者的電腦。如果使用者忘記密碼,則登入頁面可以呼叫成員資格函式,協助使用者記住密碼或建立新的密碼。

每一次使用者要求其他受保護的頁面時,ASP.NET 表單驗證就會檢查使用者是否已通過驗證,然後允許使用者檢視頁面,或將使用者重新導向至登入頁面。根據預設,在使用者的工作階段中驗證 Cookie 會持續有效。

在驗證了使用者之後,成員資格系統會使包含目前使用者相關資訊的物件可供使用。例如,您可以取得成員資格使用者物件的屬性,來判斷使用者的名稱和電子郵件地址、使用者上次登入應用程式的時間等等。

成員資格系統的重要特色就是您從不需要明確地執行任何低階資料庫函式,即可取得或設定使用者資訊。例如,您可以呼叫成員資格 CreateUser 方法來建立新的使用者。成員資格系統會處理建立必要資料庫記錄以儲存使用者資訊的細節。當您呼叫 ValidateUser 方法來檢查使用者的認證時,成員資格系統會為您執行所有資料庫查閱作業。

成員資格設定和管理

您可以在應用程式的 Web.config 檔中設定成員資格系統。設定和管理成員資格的最簡單方法就是利用網站管理工具,因為這個工具會提供精靈型介面。做為成員資格組態的一部分,您會指定:

  • 要使用的成員資格提供者 (這通常也會指定要在哪一個資料庫中儲存成員資格資訊)。

  • 密碼選項,例如加密和是否支援根據使用者特定問題來進行密碼復原。

  • 使用者和密碼。如果您正在使用網站管理工具,則可以直接建立和管理使用者。否則,您必須呼叫成員資格函式,以程式設計方式建立和管理使用者。

請參閱

概念

保護成員資格的安全

其他資源

使用成員資格管理使用者