问题由来:
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