如何控制MembershipUser.ResetPassword()格式

时间:2009-01-09 02:43:14

标签: asp.net passwords asp.net-membership reset

是否可以控制通过调用MembershipUser.ResetPassword()自动生成的密码格式?

我希望能够允许或不允许在生成的密码中使用某些特殊字符。

我正在使用密码格式为Hashed的SqlMembershipProvider。

感谢。

4 个答案:

答案 0 :(得分:19)

您可能需要分两步执行此操作,正如Mark Fitzpatrick在此处所指出:http://bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-passwordrecovery#post2740740

首先重置密码,然后立即将其更改为您喜欢的格式。显然,不建议使用Mark的示例中的固定字符串 - 您需要实现some random string generator

user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());

答案 1 :(得分:3)

今天您也可以使用Membership.GeneratePassword方法并传递MinRequiredPasswordLength或使用已在Web.config中定义的属性,如下所示:

  var newPassword =
                   // 0 = Number of non alphanumeric characters
                  Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);

  user.ChangePassword(user.ResetPassword(), newPassword);

答案 2 :(得分:1)

看一下这篇文章 - Changing the autogenerated password format in the SqlMembershipProvider

  

我想出了一个快速的方法来破解SqlMembershipProvider以生成不太复杂的密码,它就像创建一个继承自SqlMembershipProvider的新提供程序类一样简单,然后覆盖GeneratePassword方法。

这不是一个完全解决的解决方案,但它可能有所帮助。

答案 3 :(得分:0)

我希望有一些配置设置可以使用,但覆盖GeneratePassword()方法适用于我的情况。

我们已经有了一个加密实用程序类,可以生成随机密码字符串,因此这是一个非常快速的更改。