IdentityUser, как проверить старый пароль? - PullRequest
0 голосов
/ 25 апреля 2018

Я хотел бы иметь возможность изменить текущий пароль пользователя, только если он / она вводит правильный старый пароль, например:

Way of updating user password

Но я изо всех сил пытался найти здесь и в других местах элегантное решение,
мое текущее решение выглядит так:

var oldPasswordHashed = _userManager.PasswordHasher.HashPassword(appUser, model.OldPassword);
if (oldPasswordHashed == appUser.PasswordHash)
{
    var result = await _userManager.ChangePasswordAsync(appUser, appUser.PasswordHash, model.NewPassword);
    if (!result.Succeeded)
    {
        ModelState.AddModelError(nameof(EditUserViewModel.OldPassword), "Error at changing password, retry later.");
        return View(model);
    }
}

1 Ответ

0 голосов
/ 25 апреля 2018

Метод ChangePasswordAsync() предполагает, что старый пароль не будет хэширован.

Попробуйте вместо этого.

_userManager.ChangePasswordAsync(appUser, model.OldPassword, model.NewPassword);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...