Search code examples
c#asp.net-identityasp.net-identity-2asp.net-mvc-5.1

Identity 2.0 Reset password by Admin


How can I reset password as a admin for other users?

I have tried using the code below

var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
var result = await UserManager.ResetPasswordAsync(user.Id, code, vm.NewPassword);

when stepping through GeneratePasswordResetTokenAsync, the dispose method of the controller is called.

Can someone please enlighten me?


Solution

  • You can also extend UserManager and expose an explicit AdminChangePassword API that doesn't require any information. Something like this in ApplicationUserManager which extends UserManager should work:

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