ASP.NET MVC 5身份-更改密码后如何保持用户登录名?

时间:2019-06-18 12:16:53

标签: asp.net-mvc asp.net-identity-2

我正在构建我的第一个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
                 }
          }
    }

对于需要更改密码,更新安全标记并登录用户的顺序,我感到困惑。在重新登录之前,我还需要注销吗?

0 个答案:

没有答案