【问题标题】:Creation of infinite cookies until error创建无限 cookie 直到出错
【发布时间】:2016-09-09 11:48:29
【问题描述】:

我目前正在开发一个 ASP.NET MVC 项目,并且正在使用 azure AD 连接到我的网站。

当我第一次在 Chrome 上尝试时,例如,这些是创建的 cookie:

而且一切正常!但是如果我在不停止 IIS express 的情况下在 FireFox 上启动同一个网站,我会收到无限数量的 cookie,服务器会停止并说:

HTTP 400。请求标头的大小太长。

得到了这个 cookie 列表:

如果我关闭 IIS Express 并再次使用 FireFox 重试,它只创建了 3 个 cookie 并且工作正常...

有人可以解释一下发生了什么吗?

PS:请不要给出“你需要删除旧的cookies”的解决方案,这不是问题所在......即使我没有任何cookie,它也不起作用......什么浏览器都无关紧要我正在使用,我尝试了 6 种不同的浏览器,每次只有第一个发布的浏览器是唯一有效的。

提前感谢您的帮助!

【问题讨论】:

标签: asp.net cookies iis-express


【解决方案1】:

原因/调查 我认为您有一些安全且需要身份验证的 API 或 AJAX 调用。当您更改浏览器并且您的请求不再经过身份验证并且在 AJAX 或 API 调用时开始创建 cookie。我确信如果您将登录到 FireFox 中的应用程序,它将停止这样做。我不认为这是特定于浏览器的问题。如果您将应用程序从 Firefox 移动到 IE,它也会这样做。

解决方案 现在,您必须确保在未登录或请求未通过身份验证时重定向到登录页面并停止进行未经身份验证的调用。

其他解决方案是按照MikeDotNet 解决方案删除所有 nonce cookie。

您会发现有些人认为这是 Microsoft Nuget 包 Microsoft.Owin.Security.OpenIdConnect 中的一个错误,如果您使用 3.0.0,它将解决该问题。它适用于某些情况,但我发现该解决方案适用于 IIS,但不适用于云。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    • 2017-06-26
    • 2012-01-03
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    相关资源
    最近更新 更多