0

aspnet メンバーシップ プロバイダーを使用して maxInvalidPasswordAttempts に達した後、userspassword をリセットするにはどうすればよいですか?

4

3 に答える 3

0
于 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(ハッシュ)PasswordFormatとテーブルPasswordSalt内のフィールドをaspnet_Membership別の既知のユーザーから「失われた」ユーザーに直接コピーすることですが、それは恐ろしいハックです。

于 2012-07-03T04:53:29.780 に答える
0

ここでは大げさな推測です... MembershipProvider.ResetPassword() ?

于 2012-07-03T04:46:11.390 に答える