2014-02-12 82 views
1

我有一个MVC 3应用程序,它至少有一次根据passwordStrengthRegularExperssion设置生成了无效的密码。在配置<membership>部分的设置是:MembershipUser.ResetPassword生成无效密码

passwordStrengthRegularExpression =“^(=(= {7,20} $?)(= [AZ]。)(= [AZ]?)。?。 [\ d \ W])。 $“

这意味着我们至少需要一个大写字母和一个小写字母以及一个特殊字符。

在这种情况下生成的密码是“mg $ [v9p}” - 没有大写字母。将其中一个字母改为大写使其通过正则表达式测试。

有没有人见过类似的行为,或者没有人有一个想法可能会发生什么?

谢谢!

回答

0

它取决于您正在使用的MembershipProvider。致电MembershipUser.ResetPassword将最终导致致电MembershipProvider.ResetPassword

这意味着:

  • 如果实现自己MembershipProvider你可以看看那里看看会发生什么。
  • 如果您在使用MSDN微软SqlMembershipProvider比这记也许回答你的问题:

    由ResetPassword方法创建的随机密码不能保证通过在PasswordStrengthRegularExpression属性的正则表达式。但是,随机密码将符合由MinRequiredPasswordLength和MinRequiredNonAlphanumericCharacters属性建立的条件。

+0

谢谢,伯特尔 - 这可能是问题所在。我正在使用MySqlMembershipProvider。一种疯狂的东西。我宁愿他们只是没有实现的功能,而不是错误地实现它。 – sydneyos