Asp.net mvc 3 如何在asp.net membershipprovider中重置用户密码?
在用户使用aspnet成员资格提供程序访问maxInvalidPasswordAttempts后,如何重置用户密码?这里只是一个猜测 或解锁它们我假设这是在管理员用户用新的已知密码覆盖现有用户密码(或忘记我的密码重置类型功能)的情况下进行的。这涉及到一个技巧,因为您需要首先“随机”重置密码,以获得要传递给Asp.net mvc 3 如何在asp.net membershipprovider中重置用户密码?,asp.net-mvc-3,security,asp.net-membership,membership-provider,Asp.net Mvc 3,Security,Asp.net Membership,Membership Provider,在用户使用aspnet成员资格提供程序访问maxInvalidPasswordAttempts后,如何重置用户密码?这里只是一个猜测 或解锁它们我假设这是在管理员用户用新的已知密码覆盖现有用户密码(或忘记我的密码重置类型功能)的情况下进行的。这涉及到一个技巧,因为您需要首先“随机”重置密码,以获得要传递给ResetPassword的已知密码: public bool ResetUserPassword(Guid userId, string newPassword) {
ResetPassword
的已知密码:
public bool ResetUserPassword(Guid userId, string newPassword)
{
MembershipUser user = Membership.Provider.GetUser(userId, false);
// Unlock the user account if necessary
user.UnlockUser();
Membership.UpdateUser(user);
// Trick here is that have to reset it randomly first to be able to provide a new known password
string tmpPassword = user.ResetPassword();
return user.ChangePassword(tmpPassword, newPassword);
}
还有另一种方法,就是将aspnet_Membership
表中的Password
(散列)、PasswordFormat
和PasswordSalt
字段直接从另一个已知用户复制到“丢失”用户,但这是一种可怕的黑客行为