aspnet メンバーシップ プロバイダーを使用して maxInvalidPasswordAttempts に達した後、userspassword をリセットするにはどうすればよいですか?
質問する
2649 次
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 に答える