最近正在研究 ASP.Net 2.0 新增的login控件,發現系統默認的密碼安全性要求較高,即“密碼最短長度為 7,其中必須包含以下非字母數字字符: 1。”,對於一般王展來說沒有必要(連Windows2003sever都沒有默認要求這樣復雜的密碼)。一些參考資料提供的修改方法是在Machine.config裡面修改。但是除非你有主機的管理權,否則是不能修改的。所以還是建議到web.config文件裡面修改。
方法是在web.config的<system.web>節點裡加入子標簽:
<membership>
<providers>
<remove name="ASPNetSqlMembershipProvider"/>
<add name="ASPNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
enablePassWordRetrIEval="false"
enablePassWordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passWordFormat="Hashed"
maxInvalidPassWordAttempts="5"
minRequiredPassWordLength="6"
minRequiredNonalphanumericCharacters="0"
passWordAttemptWindow="10"
passWordStrengthRegularExpression="" />
</providers>
</membership>
對關鍵的屬性做一下說明:
connectionStringName 數據庫連接。這個要在web.config設置
enablePassWordRetrIEval 獲得一個值,指示當前成員資格提供程序是否配置為允許用戶檢索其密碼。
enablePassWordReset 獲得一個值,指示當前成員資格提供程序是否配置為允許用戶重置其密碼。
requiresQuestionAndAnswer 獲取一個值,該值指示默認成員資格提供程序是否要求用戶在進行密碼重置和檢索時回答密碼提示問題。
applicationName 獲取或設置應用程序的名稱。
requiresUniqueEmail 指示用戶在創建用戶時是否必須提供唯一的電子郵件地址值。
passWordFormat 指示在成員資格數據存儲區中存儲密碼的格式。下面有詳細說明
maxInvalidPassWordAttempts 獲取鎖定成員資格用戶前允許的無效密碼或無效密碼提示問題答案嘗試次數。
minRequiredPassWordLength 獲取密碼所要求的最小長度。
minRequiredNonalphanumericCharacters 獲取有效密碼中必須包含的最少特殊字符數。
passWordAttemptWindow 獲取在鎖定成員資格用戶之前允許的最大無效密碼或無效密碼提示問題答案嘗試次數的分鐘數。
對PassWordFormat 的詳細說明
屬性指示存儲密碼的格式。密碼可以采用 Clear、Encrypted 和 Hashed 密碼格式存儲。Clear 密碼以明文形式存儲,這可以提高存儲和檢索密碼的性能,但安全性較差,當數據源安全性受到威脅時此類密碼很容易被讀取。Encrypted 密碼在存儲時進行了加密,可以在比較或檢索密碼時進行解密。此類密碼在存儲和檢索時需要進行額外的處理,但比較安全,在數據源的安全性受到威脅時不容易被獲取。Hashed 密碼在存儲到數據庫時使用單向哈希算法和隨機生成的 salt 值進行哈希處理。在驗證某一密碼時,將用數據庫中的 salt 值對該密碼進行哈希計算以進行驗證。無法檢索哈希密碼。
http://citywill.cnblogs.com/archive/2006/06/15/426236.Html