Пользователь Не Найден При Смене Пароля

Что не так со следующим кодом, который вызывает его привести к ошибке» пользователь не найден». Цель кода-разрешить пользователям, вошедшим в систему, изменять свои пароли.

[Authorize]
public partial class TestController : Controller
{
    UserManager<IdentityUser> userManager =
new UserManager<IdentityUser>(new UserStore<IdentityUser>());

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult ChangePass(ChangePassTestVM model)
    {
        if (ModelState.IsValid)
        {
            try
            {
                 var id = Membership.GetUser().ProviderUserKey.ToString();
                 var result = MembershipUser. userManager.ChangePassword(id, model.OldPassword, model.NewPassword);
            }
            catch (Exception exc)
            {
                return View(model);
            }
        }
        return View(model);
    }
}

1 ответ

  1. Если вы используете-Microsoft.сеть САШ.Identity version 2 тогда есть лучший способ сбросить пароль

    string resetToken = await UserManager.GeneratePasswordResetTokenAsync(model.Id);
    
    IdentityResult passwordChangeResult = await UserManager.ResetPasswordAsync(model.Id, resetToken, model.NewPassword);
    

    Если у вас есть версия-1, то вы можете попробовать использовать методы «RemovePassword» и «AddPassword» экземпляра «userManager».