ASP.NET2.0的Membership中客户化用户密码的设置

发表时间:2007-04-16 08:59:00 浏览次数:1022
关键字:Membership


问题由来

Asp.net2.0提供了一组写好的用户管理控件,比方说CreateUserLogin等。还是比较好用的,也易于扩展。但是在她的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>

        <remove name="AspNetSqlMembershipProvider"/>

        <add name="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.aspx

FeedBack


还没有任何评论...
Title:
 
Name:
 
URL:

Comments:
 

Because of the cache,you may see your comments several minutes later.


关于我们 关于希丁 广告合作 业务范围 网站地图 工作机会
copyright @ 2003 - 2005 xding.com  蜀icp备05022311号
tel:(028)66380789 email:xdings#gmail.com(请将#修改为@)
my photo v1 v2 v3 Valid XHTML 1.0 Transitional