10

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

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

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

谢谢。

4

4 回答 4

20

您可能希望分两步执行此操作,正如 Mark Fitzpatrick 在此处确定的那样:http: //bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-passwordrecovery#post2740740

首先重置密码,然后立即将其更改为您喜欢的格式。显然,不建议使用 Mark 示例中的固定字符串 - 您需要实现一些随机字符串生成器

user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());
于 2009-04-09T14:09:22.167 回答
3

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

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

  user.ChangePassword(user.ResetPassword(), newPassword);
于 2012-06-12T04:00:08.120 回答
1

看看这篇文章 -在 SqlMembershipProvider 中更改自动生成的密码格式

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

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

于 2009-01-09T02:55:50.990 回答
0

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

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

于 2009-01-09T03:12:03.500 回答