ASP.NET:如何设置HttpCookie到期时间仍然是会话cookie?

时间:2012-06-15 01:59:37

标签: asp.net

似乎来自msdn(页面底部的评论),如果您设置了HttpCookie的Expires属性,它将成为存储在临时Internet文件文件夹中的持久cookie。如果我希望它保持会话cookie(这意味着当你关闭浏览器时它已经消失)该怎么办,但是仍然想设置到期时间,比如30分钟?当您使用ASP.NET Membership API时,您可以在web.config中设置会话cookie(身份验证cookie)的到期时间,因此这意味着必须有一种方法来设置会话cookie的到期时间。

3 个答案:

答案 0 :(得分:2)

考虑到您的要求,我会说,除非您有充分的理由使用Cookie,否则您应该使用Session对象。

如果您没有在此Cookie中存储“大量”信息和/或预计用户数量不会很大,那么这似乎是最佳选择。

答案 1 :(得分:1)

你有没有试过这样的事情:

this.Response.Cookies["d"].Expires = DateTime.Now.AddMinutes(30);

答案 2 :(得分:1)

您可以添加另一个cookie(也是一个会话cookie),其中包含一个DateTime,告诉您的应用程序第一个cookie有效多长时间。然后,每当您的应用程序读取第一个cookie时,它也会检查新cookie以查看它是否仍然有效。

我认为这或多或少是会员资格如何做到的。虽然在这种情况下只有一个cookie,但该cookie包含几个字段(信息片段)。