我正在ASP .NET MVC 2中的Web项目上工作.
在这个项目中,我们将一些信息存储在一个ecripted cookie(ASPXAUTH cookie)中,以避免为每个请求查询db.
事情是这部分的代码突然停止工作.
我查看了对源控制服务器上的代码所做的任何可能导致它的更改,我一无所获.我甚至还原到了一个已知的工作副本(处理其他人PC,相同的代码等),但经过调试后,似乎.ASPXAUTH cookie不再被保存了.而是设置了ASP.NET_SessionId cookie …(之前没有)
我更改了web.config文件以关闭sessionState.这消除了设置ASP.NET_SessionId cookie,但它仍然没有保存auth cookie.
我最近安装了一些Microsoft Windows XP更新,但另一个人(PC运行应用程序就好了)也做了.
谷歌搜索后,我发现一些信息指出了cookie的过期日期问题.以太网电脑没有合适的时间/日期(事实并非如此),而其他人则错误地设置了有效期限. (我检查过,它设置正确)…
除了使用(Chrome)之外的其他浏览器,问题仍然存在,我尝试使用IE6.
有关为什么会发生这种情况的任何想法?
我继续发布我能找到的任何有用的信息.
提前致谢.
解决方法
这可能是你的cookie变得太大了.我遇到了同样的问题.
如果您的cookie变得太大,它将无法工作,具体取决于浏览器
如果您的cookie变得太大,它将无法工作,具体取决于浏览器
cookie通常限制为4096字节,每个站点不能存储超过20个cookie.通过将单个cookie与子键一起使用,您可以使用较少的20个cookie来分配您的站点.此外,单个cookie占用大约50个字符用于开销(到期信息等),加上存储在其中的值的长度,所有这些都计入4096字节的限制.如果存储五个子密钥而不是五个单独的cookie,则可以节省单独cookie的开销,并可以节省大约200个字节.