轉:ASP.NET2.0的Membership中客戶化用戶密碼的設置

問題由來
Asp.net2.0提供了一組寫好的用戶管理控件,比方說CreateUser,Login等。還是比較好用的,也易於擴展。但是在她的CreateUser裏面有個用戶密碼規則卻一直不知道該怎麼修改。
默認的密碼規則比較複雜:長度必須>7,必須包含一個特殊字符。
 
解決方法1通過修改CreateUserWizard.PasswordRegularExpression
通過在網上查詢,發現可能與PasswordRegularExpression有關係。PasswordRegularExpression:是一個正則表達式
於是找了個例子:
<asp:createuserwizard id="Createuserwizard1" runat="server" passwordregularexpression='@/"(?=.{7,)(?=(.*/d){1,)(?=(.*/W){1,)' passwordregularexpressionerrormessage="Your password must be 7 characters long, and contain at least one number and one special character.">
 </asp:createuserwizard>
修改,測試之。還是不行。
這樣解決的只是界面上的提醒,與實際Provider的檢查還是不一樣的。即使UI檢查成功,後邊的Provider在寫數據庫的時候依然會給出錯誤提示。
 
解決方法2 :通過程序修改Provider屬性
 又查了一些資料之後,覺得可能要在Provider上下功夫。 
於是寫出這樣的代碼:
        Membership.Provider.MinRequiredPasswordLength = 4;
        Membership.Provider.MinRequiredNonAlphanumericCharacters = 0;
不過,也是失敗,原因是Provider的屬性是ReadOnly的 
 
解決方法3 :修改Webconfig屬性
第三種方法,就是修改Web.Config了,還是修改Provider屬性
<membership>
      <providers>
        <removename="AspNetSqlMembershipProvider"/>
        <addname="AspNetSqlMembershipProvider"type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"connectionStringName="LocalSqlServer"
        applicationName="/"
        minRequiredPasswordLength="1"
        minRequiredNonalphanumericCharacters="0" />
      </providers>
    </membership>
 
成了。
 
結論
結合這三種修改方法,就可以順利客戶化自己的Membership的密碼規則了。
1:通過Web.Config來修改程序實現的規則
2:通過PasswordRegularExpression實現UI的驗證規則

 

原帖地址:http://www.cnblogs.com/dlwang2002/archive/2007/03/09/669263.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章