共用方式為


表單驗證認證

更新:2007 年 11 月

在登入時用來驗證使用者的表單驗證認證,可以儲存在外部資料來源或應用程式組態檔中。

注意事項:

ASP.NET 成員資格是儲存和管理表單驗證應用程式中使用者認證的慣用方法。如需詳細資訊,請參閱使用成員資格管理使用者

在應用程式組態檔中儲存使用者

當使用表單驗證時,可以使用網站組態檔之認證區段中的使用者/密碼組驗證使用者。您可以使用 Authenticate 方法,將使用者提供的認證與認證區段中的使用者/密碼組清單做比較,以決定是否要授與存取權。在下列範例中,如果使用者 Kim 和 John 提供正確的密碼即可登入:

<credentials passwordFormat="SHA1" >
    <user name="Kim"
          password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
    <user name="John" 
          password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>

範例中的認證組是以 Secure Hash Algorithm-1 (SHA1) 密碼雜湊格式進行加密。PasswordFormat 屬性 (Attribute) 是必要項。下表列出此屬性的值。

說明

Clear

密碼是儲存為清除文字。使用者密碼不需進一步轉換即可直接和這個值比較。

MD5

密碼是使用訊息摘要式 5 (Message Digest 5,MD5) 雜湊摘要式來儲存。為了驗證認證,會使用 MD5 演算法雜湊使用者密碼,並與儲存值做比較。使用這個值時,將永不儲存或比較清除文字式密碼。這個演算法和 SHA1 相比可以產生較佳的效能。

SHA1

密碼是使用 SHA1 雜湊摘要式來儲存。為了驗證認證,會使用 SHA1 演算法雜湊使用者密碼,並與儲存值做比較。絕不儲存純文字式密碼。使用這個演算法可以改善 MD5 演算法的安全性。

.NET Framework 所包含的類別和方法,可使您更容易以程式的方式建立雜湊值,以便長久儲存。有助於設計這個工作程式的類別是 FormsAuthentication。它的 HashPasswordForStoringInConfigFile 方法可以執行雜湊。若要更精確的控制,也可以使用 System.Security.Cryptography 類別。

儲存在文字檔中的雜湊密碼無法用於重新產生原始密碼,但它們可能容易受到字典攻擊。在這類型的攻擊中,攻擊者在取得密碼檔案的存取權之後,試圖使用軟體反覆雜湊大字典內的所有字,並比較產生的雜湊與已儲存的雜湊,以猜出密碼。如果您是以任何方式儲存雜湊密碼,就應要求使用者選擇非常用字的密碼,而且其中包含一些數字和非字母與數字的字元,以避免字典攻擊。此外,您也可以使用 ASP.NET 成員資格儲存認證,使其更方便管理。如需詳細資訊,請參閱使用成員資格管理使用者

請參閱

參考

FormsAuthenticationModule

其他資源

ASP.NET Web 應用程式安全性

表單驗證提供者