我在一个应用程序中使用了asp.net Membership Provider。同时,我也使用了“开箱即用”的asp:PasswordRecovery控件。
我的客户抱怨说新密码太复杂了。例如:}>;-(hYrS^OTfY
有没有什么小的调整可以让新密码只包含字母和数字?
谢谢!
我在一个应用程序中使用了asp.net Membership Provider。同时,我也使用了“开箱即用”的asp:PasswordRecovery控件。
我的客户抱怨说新密码太复杂了。例如:}>;-(hYrS^OTfY
有没有什么小的调整可以让新密码只包含字母和数字?
谢谢!
这个有效:
using System;
using System.Collections.Generic;
using System.Web.Profile;
using System.Web.Security;
using System.Text;
namespace TS.Common.MembershipProvider
{
public class MembershipProvider : SqlMembershipProvider
{
/// Create an array of characters to user for password reset.
/// Exclude confusing or ambiguous characters such as 1 0 l o i
string[] characters = new string[] { "2", "3", "4", "5", "6", "7", "8",
"9", "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "n",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
const int DefaultResetPasswordLength = 10;
private int ResetPasswordLength;
// Create a more user friendly password to avoid confusion when
// trying to key in the new value
public override string GeneratePassword()
{
string newPassword = string.Empty;
System.Random rnd = new Random();
for (int i = 0; i < ResetPasswordLength; i++)
{
newPassword +=
characters[rnd.Next(characters.GetUpperBound(0))];
}
return newPassword;
}
}
}