转: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 >
        < 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.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值