0

在他使用 aspnet 会员提供程序达到 maxInvalidPasswordAttempts 后,如何重置用户密码?

4

3 回答 3

0

这里只是一个疯狂的猜测...... MembershipProvider.ResetPassword()

于 2012-07-03T04:46:11.390 回答
0

MembershipProvider.UnlockUser()解锁它们

于 2012-07-03T04:53:10.323 回答
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(散列)PasswordFormatPasswordSalt字段aspnet_Membership从另一个已知用户复制到“丢失”的用户,但这是一个可怕的黑客攻击。

于 2012-07-03T04:53:29.780 回答