如何将输入的密码与在ASP.Net Membership中创建新用户之前输入的用户名进行比较,以使密码不等于用户名?
的更新
我正在尝试设置(在web.config文件提供程序部分)
passwordStrengthRegularExpression= "^(?:(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!%,.;:])|(?=.*[a-z])(?=.*[0-9])(?=.*[!%,.;:])|(?=.*[A-Z])(?=.*[0-9])(?=.*[!%,.;:]))(?i)(?!.*" + Username + ").+$";
但我担心如果像这样比较用户名我会在会员资格中工作
其次我想要做的是使用一些自定义验证来装饰AccountModel中 RegisterModel 类的Password
属性。
无论哪种方式我都很困惑,需要你的建议。
答案 0 :(得分:1)
它不是一个直接的答案,但是如果你根据MembershipProvider配置中的密码设置了最低复杂性要求,那么这几乎没有可能。
这是在以下web.config块中完成的(例如):
<membership>
<providers>
<clear/>
<add connectionStringName="xxx" requiresQuestionAndAnswer="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="5" passwordStrengthRegularExpression="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$" applicationName="/" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>