ASPXAUTH cookie不会被保存

问题描述:

林在ASP .NET MVC 2ASPXAUTH cookie不会被保存

在这个项目中,我们存储的ecripted的cookie(在ASPXAUTH饼干)里面的一些信息Web项目合作,以避免需要查询数据库为每个请求。

事情是这部分代码突然停止工作。

我回顾了对源代码管理服务器上任何可能导致它的代码所做的更改,但是我什么都没发现。我甚至还回到了一个已知的工作副本(在其他人PC,相同的代码等上工作),但经过调试后,似乎.ASPXAUTH cookie不再被保存。相反ASP.NET_SessionId cookie正在设置...(以前没有)

我更改了web.config文件以关闭sessionState。这消除了ASP.NET_SessionId cookie的设置,但它仍然不保存auth cookie。

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

谷歌搜索后,我发现一些信息指出了cookie的有效日期问题。以太网电脑没有正确的时间/日期(事实并非如此),而其他错误设置的cookie过期日期。 (我检查,它被正确设置)...

除了一个即时通讯使用(Chrome)之外,其他浏览器问题仍然存在,我用IE6试了一下。

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

我继续发布任何有用的信息,我可以找到。

在此先感谢。

这可能是因为你的饼干变得太大了。我遇到了同样的问题。 如果你的cookie变得太大,这是行不通的,这取决于当然

MSDN

饼干通常限于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?

+0

你钉了它,它的确是一个尺寸问题。非常感谢。 :] – 2009-12-14 12:43:08

一个简单的方法来检查你的饼干大小为调试和运行下面的代码

int cookieSize = System.Text.UTF8Encoding.UTF8.GetByteCount(faCookie.Values.ToString()); 

如果超过限制,那么你会遇到的问题。