【问题标题】:asp.net core 2 identity "Remember me" does not workasp.net core 2 身份“记住我”不起作用
【发布时间】:2018-06-28 07:37:57
【问题描述】:

我使用个人用户帐户创建了一个新的 asp.net core2 Web 应用程序 - 我是 asp.net core 身份的新手。我正在使用 VS 2017。我没有对 VS 生成的代码进行任何更改。我运行了项目并成功注册了一个新用户。但是当我登录并检查“还记得我吗?”复选框,然后在退出并尝试再次登录后,它放弃了我,我必须再次输入我的用户名和密码!那么问题出在哪里?

【问题讨论】:

  • Remember me 并不像您认为的那样。这意味着'如果我关闭浏览器并再次加载它,我仍然会登录吗?'。基本上它启用 permanent cookie 而不是 session cookie。
  • 感谢您的指导。我说我是 Identity 新手。
  • 当您退出后,它就不再记得您了。

标签: c# asp.net-identity asp.net-core-2.0


【解决方案1】:

您可以在 [HttpBody] 中使用LoginInputModel model ==> 它包含登录数据,所以 并确保 model.RememberMe 的值是 true 或不是

[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> doLogin(LoginInputModel model, string returnUrl = null)
{
  if (User.Identity.IsAuthenticated)
  {

    return RedirectToAction("Index", "Home");
  }

  ViewData["ReturnUrl"] = returnUrl;
  if (ModelState.IsValid)
  {


    try {

    var result = await _signManager.PasswordSignInAsync(MyUser, model.Password, model.RememberMe, lockoutOnFailure: false);// ==>> model.RememberMe = true

    .
    .
    .
}

【讨论】:

  • _signManager ==> 私有 SignInManager _signManager;公共 AccountHomeController(SignInManager signManager) { _signManager = signManager; }
  • 如果你使用 Visual Studio 运行它......如果你弯腰调试...... cookie 将被删除
  • 感谢您关注我的问题。通过mjwills 的评论,我了解到我对记住我 功能的理解很差。但是,如果您帮助我为用户提供一种工具来使用 cookie 保存他/她的用户/在客户端机器中传递,我将不胜感激。
猜你喜欢
  • 2021-11-24
  • 2010-10-05
  • 2011-06-18
  • 2021-01-11
  • 1970-01-01
  • 2020-03-21
  • 2011-06-11
  • 2019-05-05
  • 1970-01-01
相关资源
最近更新 更多