我在MVC5中有一个带有OWIN身份的Web应用程序,我想知道是否有可能从代码更改用户密码而不知道旧密码。因为方法ChangePassword
要求userId
,oldPassword
和newPassword
。
答案 0 :(得分:35)
在这种情况下,您将把ChangePassword视为重置密码。您可以通过生成令牌并使用该令牌直接使用重置密码来实现此目的,以使用新密码对其进行验证。
var userId = User.Identity.GetUserId();
var token = await UserManager.GeneratePasswordResetTokenAsync(userId);
var result = await UserManager.ResetPasswordAsync(userId, token, newPassword);
查看this one了解详情。
希望这有帮助。