ASP.NET 4.0中的ResetPassword方法

时间:2011-09-05 12:39:30

标签: asp.net

ResetPassword方法可以重置旧密码,但用户无法使用ResetPassword方法生成的新密码登录。代码:

String user =(((TextBox)PasswordRecovery2.Controls[0].FindControl("UserName")).Text).ToString();
String newPassword = clsStatic.RandomString(10, false);
MembershipUser username = Membership.GetUser(user);
String resetPassword = username.ResetPassword();
username.ChangePassword(resetPassword, newPassword);

2 个答案:

答案 0 :(得分:1)

ChangePassword是返回true还是false?

我敢打赌,随机函数会返回一个不符合web.config成员资格部分中指定条件的密码。

由于ResetPassword已经为您提供了新的有效密码,为什么还要生成另一个呢?

答案 1 :(得分:0)

您的新随机密码生成应该是理想情况下的其中一个

// this will automatically take care of all password criteria
string newPassword = Membership.GeneratePassword(10, 0);

或者

//for generating alpha numeric password only
string newPwd = Guid.NewGuid().ToString().Substring(0, 11).Replace("-", "");

否则你的代码就没问了。