【问题标题】:Identity 3 not working i Internet Explorer身份 3 在 Internet Explorer 中不起作用
【发布时间】:2016-04-30 14:53:36
【问题描述】:

我在我们的 asp.net 核心应用程序中遇到了 Identity 3 的问题。我们使用“标准”登录:

var result = await _loginManager.PasswordSignInAsync(model.UserName, model.Password, false, lockoutOnFailure: false);

结果正常,cookie 已在浏览器中设置,一切看起来都正确,但在 Internet Explorer 中,授权在应用程序调用后不起作用,用户再次被重定向到登录页面。在 Chrome 中它工作正常。

【问题讨论】:

  • 有完全相同的问题,我只是没有使用身份,而是使用 HttpContext.Authentication.SignInAsync(CookieInstance, principal)。它在 Chrome、Firefox 和 Opera 中运行良好,但 IE 和 Edge 在进入时没有经过身份验证。您是否知道是什么原因造成的以及如何解决?
  • 原来我的 IE Cookies 中有一些 om kind om rubbish,所以当我清除 IE 中的所有 cookie 和历史记录时,它开始起作用了。
  • 清除临时文件和网站文件是让它工作所必需的,但这只是一个临时修复,而且你不能要求用户这样做。

标签: asp.net-core asp.net-core-mvc asp.net-identity-3


【解决方案1】:

将 [ResponseCache(NoStore = true)] 添加到每个 API 调用,因为 IE 缓存结果因此身份验证失败,除非手动清除临时文件。

代码如下:

  [HttpPost]
  [ResponseCache(NoStore = true)]
  public async Task<IActionResult> Login([FromBody] Login login) etc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2015-03-16
    相关资源
    最近更新 更多