使用ASP.NET拆分和重新组合Cookie中的大字符串

时间:2011-01-05 19:31:27

标签: asp.net cookies claims-based-identity adfs2.0 siteminder

我想要一个大字符串保存在cookie中,但是我不知道每个cookie的最大字符串长度和最大cookie计数的最佳实践。

我应该使用什么逻辑来拆分字符串,然后组合一组cookie?

(Microsoft ADFS和Siteminder可能会使用这种技术,所以我会对它们的实现感兴趣)

1 个答案:

答案 0 :(得分:1)

Cookie是由浏览器处理的,因此每个浏览器都有不同的限制。

拆分Cookie只能暂时提供帮助,因为每个网站的Cookie总数也有限制,但您也会在每个网页上添加数据传输费用

每个Cookie的每个浏览器的限制:
Internet Explorer处理大约3904字节的最大cookie Mozilla Firefox处理大约3136字节的最大cookie

当我在Chrome上进行一些测试时,Chrome会在内部使用大型Cookie崩溃,并且页面下方不会显示任何消息。

现在,Netscape和Microsoft都已采取措施限制基于RFC 2109的Cookie数量限制总Cookie数量为300 ref:http://www.cookiecentral.com/faq/#2.5
这样做有很多原因,其中之一就是黑客攻击,对一个网站进行映像并在cookie上上传完整的视频:)并用它来装满你的硬盘......

我说最好的做法是在浏览器上保留一个小的cookie引用,并将其与服务器上的实际数据连接起来。从各个方面越小越好。

如何对cookie进行测试,你可以制作类似的代码。

if(Request.Cookies["cookieTest"] == null)
    Request.Cookies["cookieTest"].Value = "more text into cookie";
else
    Request.Cookies["cookieTest"].Value += "more text into cookie";

// check now the size
Responce.Write(Request.Cookies["cookieTest"].Value.Length);

当您尝试在Cookie上使用不受控制的大数据时,我的经验会显示许多随机无法预测的问题。我听过很多次支持说:清除你的cookie并再试一次:))