Identity 2.0由管理员重置密码

Yao*_*hen 7 c# asp.net-identity asp.net-mvc-5.1 asp.net-identity-2

如何将密码重置为其他用户的管理员?

我尝试过使用下面的代码

var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
var result = await UserManager.ResetPasswordAsync(user.Id, code, vm.NewPassword);
Run Code Online (Sandbox Code Playgroud)

当单步执行GeneratePasswordResetTokenAsync时,将调用控制器的dispose方法.

有人可以赐教吗?

Hao*_*ung 8

您还可以扩展UserManager并公开不需要任何信息的显式AdminChangePassword API.扩展UserManager的ApplicationUserManager中的这样的东西应该工作:

public IdentityResult ChangePasswordAdmin(string userId, string newPassword) {
     var user = FindById(userId);
     // validate password using PasswordValidator.Validate
     user.PasswordHash = PasswordHasher.HashPassword(newPassword);
     Update(user);
}
Run Code Online (Sandbox Code Playgroud)