如何在ASP.NET中分配非持久性(内存中)cookie?

问题描述:

下面的代码将一个cookie发送给用户作为响应的一部分:如何在ASP.NET中分配非持久性(内存中)cookie?

var cookie = new HttpCookie("theAnswer", "42"); 
cookie.Expires = DateTime.Now.AddDays(7); 
Response.Cookies.Add(cookie); 

该Cookie是持久型,其通过大多数浏览器将被写入到磁盘和跨会话使用的。也就是说,即使浏览器和PC已经关闭,明天cookie仍然在客户端PC上。一周后,cookie将被删除(由于第2行)。

非持久性/内存中Cookie是另一种Cookie,它的使用期限由客户端浏览会话的持续时间决定。通常,这些cookie被保存在内存中,并且在浏览器关闭时被丢弃。

如何从ASP.NET分配内存中的cookie?

只需省略到期日期。通过不设置值,会话结束后cookie将自动丢弃。

var cookie = new HttpCookie("theAnswer", "42"); 
Response.Cookies.Add(cookie); 
+3

这甚至不是ASP.NET特定的。根据定义,非永久性Cookie是没有到期日期的。 :) – bzlm 2009-11-24 13:42:14

+0

我确实怀疑这是答案,但在Google和SO上几次快速搜索没有发现可信的消息。至少现在它记录在这里! @bzlm:谢谢你的奖金信息,不知道:) – 2009-11-24 13:48:21

+1

所以,简写版本'Response.Cookies [“theAnswer”]。Value =“42”'也会导致一个非持久cookie,对吧? – 2009-11-24 13:56:30

如果您根本没有指定到期日,那么它会使您要求的cookie的种类。

指定DateTime.MinValue过期也有窍门...