ASP.NET MVC 5 Идентичность. Как сохранить учетную запись пользователя после смены пароля? - PullRequest
0 голосов
/ 18 июня 2019

Я создаю свое первое приложение ASP.NET MVC и хотел бы, чтобы пользователь оставался в системе при каждом изменении своего пароля и перенаправлении на домашнюю страницу.

Я использую SecurityStamp для включения «Выйти из системы везде», когда пользователь входит в систему где-то еще. У меня validateInterval установлен на 0. Пока эта функция работает нормально, если я вхожу в систему с помощью другого браузера, исходный сеанс выходит из системы при выполнении другого запроса.

Проблема, с которой я столкнулся сейчас, заключается в том, что я хотел бы, чтобы пользователь оставался в системе и перенаправлялся на домашний экран (не на страницу входа), когда он обновляет свой пароль. Возможно ли это сделать?

Мой контроллер смены пароля выглядит так:

public async Task<ActionResult> ChangePassword(ChangePasswordViewModel model)
    {
        if (!ModelState.IsValid)
        {
           return View(model);
        }
         var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);
         if (result.Succeeded)
         {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
                if (user != null)
                {
                    await UserManager.UpdateSecurityStampAsync(user.Id);                    
                    await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                   // go to welcome page
                 }
          }
    }

Меня смущает порядок, в котором мне нужно сменить пароль, обновить марку безопасности и войти в систему. Нужно ли мне выходить из системы, прежде чем снова входить в нее?

...