ASP.NET 表單驗證概觀
更新:2007 年 11 月
表單驗證可讓您使用自己的程式碼來驗證使用者,然後在 Cookie 或網頁 URL 中維護驗證語彙基元 (Token)。表單驗證藉由 FormsAuthenticationModule 類別參與 ASP.NET Web 網頁的生命週期。您可以藉由 FormsAuthentication 類別存取表單驗證資訊和功能。
若要使用表單驗證,可以建立收集使用者認證的登入網頁,並在其中包含驗證認證的程式碼。通常您可以將應用程式設定為當使用者嘗試存取受保護資源 (例如存取需要驗證的頁面) 時,將其要求重新導向至登入網頁。如果使用者的認證有效,您可以呼叫 FormsAuthentication 類別的方法,以適當的驗證票證 (Cookie) 將要求重新導向回原始要求的資源。如果您不想重新導向,可以只取得表單驗證 Cookie 或設定它。在後續要求中,使用者的瀏覽器便會隨要求傳遞驗證 Cookie,而不再使用登入網頁。
您可以使用驗證組態項目來設定表單驗證。最簡單的方法是有一個登入網頁。在組態檔中,您可以指定 URL 以便將未驗證要求重新導向至登入網頁。之後,您可以在 Web.config 檔案或個別檔案中定義有效的認證。下列範例顯示組態檔的一個區段,其中指定了登入網頁以及 Authenticate 方法的驗證認證。密碼也已經使用 HashPasswordForStoringInConfigFile 方法進行加密。
<authentication mode="Forms">
<forms name="SavingsPlan" loginUrl="/Login.aspx">
<credentials passwordFormat="SHA1">
<user name="Kim"
password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
<user name="John"
password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>
</forms>
</authentication>
成功驗證之後,FormsAuthenticationModule 模組會設定 User 屬性的值,以參考至已驗證的使用者。下列程式碼範例示範如何以程式設計方式,讀取已通過表單驗證使用者的識別 (Identity)。
Dim authUser2 As String = User.Identity.Name
String authUser2 = User.Identity.Name;
表單驗證、ASP.NET 成員資格和登入控制項
有個使用表單驗證的便利方式,就是使用 ASP.NET 成員資格和 ASP.NET 登入控制項。ASP.NET 成員資格可讓您儲存和管理使用者資訊,並在其中包含方法以便驗證使用者。ASP.NET 登入控制項必須與 ASP.NET 成員資格一起使用。它們包含提示使用者提供認證、驗證使用者、修復或取代密碼等等的邏輯。實際上,ASP.NET 成員資格與 ASP.NET 登入控制項會在表單驗證上提供一層抽象層。這些功能可取代您使用表單驗證時通常必須執行的大部分或全部工作。如需詳細資訊,請參閱使用成員資格管理使用者和 ASP.NET 登入控制項概觀。
表單驗證與驗證服務
您也可以使用 ASP.NET 驗證服務,存取表單驗證做為 Windows Communication Framework (WCF) 服務。驗證服務可讓您從任何能以 SOAP 格式傳送及使用訊息的應用程式中使用表單驗證。驗證服務會接受使用者認證,並傳回表單驗證 Cookie。
例如,您可以從未使用 .NET Framework 進行開發的應用程式中登入使用者。如需詳細資訊,請參閱Windows Communication Foundation 驗證服務概觀。