是否可以控制通过调用MembershipUser.ResetPassword()自动生成的密码的格式?如何控制格式MembershipUser.ResetPassword()
我希望能够允许或不允许生成的密码中的某些特殊字符。
我正在使用带有哈希密码格式的SqlMembershipProvider。
谢谢。
是否可以控制通过调用MembershipUser.ResetPassword()自动生成的密码的格式?如何控制格式MembershipUser.ResetPassword()
我希望能够允许或不允许生成的密码中的某些特殊字符。
我正在使用带有哈希密码格式的SqlMembershipProvider。
谢谢。
看看这篇文章 - Changing the autogenerated password format in the SqlMembershipProvider。
我想出了一个快速的方法来破解的SqlMembershipProvider产生不太复杂的密码,这是为创建一个从SqlMembershipProvider的继承一个新的供应商类,然后重写GeneratePassword方法一样简单。
这不是一个完全解决的解决方案,但它可能有所帮助。
我希望有一些配置设置可以使用,但是重写GeneratePassword()方法适用于我的情况。
我们已经有了一个加密工具类,它会生成随机密码字符串,所以它是一个非常快速的变化。
你可能想要做这两个步骤,如确定由Mark菲茨帕特里克这里:http://bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-passwordrecovery#post2740740
首先重置密码,然后立即将其更改为您喜欢的格式。显然使用固定的字符串,如马克的例子不会被推荐 - 你想要实现some random string generator。
user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());
今天,你还可以使用Membership.GeneratePassword
方法并传递一个MinRequiredPasswordLength
或使用Web.config中已经定义是这样的属性:
var newPassword =
// 0 = Number of non alphanumeric characters
Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);
user.ChangePassword(user.ResetPassword(), newPassword);
你为什么要限制特殊字符?这几乎没有可靠的理由,而且非常不友好。 – 2009-01-09 02:46:42
@John Sheehan:另一方面,我从用户那里得到的抱怨是,生成的密码中包含'很难找到'的字符。尝试告诉(非程序员)用户找到|或键盘上的〜键。消除难以打字的角色可以被认为是一种用户友好的举动。当然,你可以告诉用户复制粘贴密码,但我也遇到过阻力。 – 2010-07-08 16:40:15