asp.net - ASPXAUTH cookie 没有被保存

标签 asp.net asp.net-mvc cookies forms-authentication

我正在 ASP .NET MVC 2 中开发一个 web 项目。

在这个项目中,我们将一些信息存储在一个 Ecripted cookie(ASPXAUTH cookie)中,以避免需要为每个请求查询数据库。

问题是这部分的代码突然停止工作。

我查看了对源代码管理服务器上的代码所做的任何更改,以查找可能导致它的任何内容,但一无所获。我什至恢复到一个已知的工作副本(在其他人的 PC 上工作,相同的代码等),但在调试之后,似乎 .ASPXAUTH cookie 不再被保存。相反,正在设置 ASP.NET_SessionId cookie...(以前不是)

我更改了 web.config 文件以关闭 sessionState。这消除了 ASP.NET_SessionId cookie 的设置,但它仍然没有保存身份验证 cookie。

我最近安装了一些 Microsoft Windows XP 更新,但另一个人(他的 PC 运行该应用程序很好)也安装了。

谷歌搜索后,我发现的一些信息指出 cookie 的到期日期有问题。 Ether 是因为 pc 没有正确的时间/日期(事实并非如此),而其他人则是因为 cookie 的到期日期设置错误。 (我检查过,设置正确)...

除了我使用的浏览器(Chrome)之外,其他浏览器的问题仍然存在,我用 IE6 尝试过。

关于为什么会发生这种情况的任何想法?

我会继续发布我能找到的任何有用的信息。

提前致谢。

最佳答案

这可能是您的 cookie 变得太大了。我遇到了同样的问题。
如果您的 cookie 变得太大,它将无法工作,当然这取决于浏览器

MSDN

cookie 通常限制为 4096 字节,并且每个站点不能存储超过 20 个 cookie。通过使用带有子键的单个 cookie,您可以使用较少的 20 个分配给您的站点的 cookie。此外,单个 cookie 占用大约 50 个字符的开销(到期信息等),加上您存储在其中的值的长度,所有这些都计入 4096 字节的限制。如果您存储五个子项而不是五个单独的 cookie,则可以节省单独 cookie 的开销并可以节省大约 200 个字节。

What is the maximum size of a web browser's cookie's key?

what happens when cookies file exceeds maximum size?

关于asp.net - ASPXAUTH cookie 没有被保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1900584/

相关文章:

asp.net - 如何允许在 TinyMCE 中嵌入内联标签

c# - Asp.net 核心模型不从表单绑定(bind)

c# - 使用 SQL 更新特定行

c# - EntityFramework Include (Eager Load) 虚拟属性的虚拟属性

javascript - jQuery跨域AJAX请求在一个页面上有效,但在另一个页面上无效

asp.net - asp.net 应用程序如何工作?

c# - 使用 Git 和 Visual Studio 检查项目

asp.net-mvc - 将复杂对象从 View 传递到 ASP.NET MVC 中的 Controller / View

session - 无法登录 Magento 管理员

java - 为什么代码没有到达其他部分