如何在使用aspnet成员资格提供程序达到maxInvalidPasswordAttempts后重置userspassword?
答案 0 :(得分:0)
这里只是猜测...... MembershipProvider.ResetPassword()?
答案 1 :(得分:0)
答案 2 :(得分:0)
我假设这是在管理员用户使用新的已知密码覆盖现有用户密码(或忘记我的密码重置类型功能)的上下文中。有一个技巧,因为您需要先“随机”重置密码才能获得传递给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);
}
还有另一种方法,即将Password
表中的PasswordFormat
(哈希),PasswordSalt
和aspnet_Membership
字段直接从另一个已知用户复制到“丢了”一个,但这是一个可怕的黑客。