如何在C#中设置cookie过期时间

时间:2011-01-27 08:49:00

标签: .net asp.net c#-4.0

如何在C#中设置Cookie到期时间?

我希望Cookie在浏览器关闭时过期。我在许多博客中发现,给出前一个日期作为到期日期将导致cookie自动过期,但这在我的情况下不起作用。

6 个答案:

答案 0 :(得分:4)

Hii bhasker,

您的问题的简单答案是,在创建cookie时不要明确指定cookie到期时间。然后,当会话完成或浏览器关闭时,它将过期。

答案 1 :(得分:1)

为什么不在cookie上使用session而不是特定时间?这样,当您关闭浏览器时,会话也将结束,使cookie过期。

答案 2 :(得分:1)

您还必须关闭同一浏览器中的所有其他页面,例如,如果您使用的是firefox,则您有一个名为firefox.exe的进程,该进程在最后一个窗口打开且会话未到期之前不会结束

答案 3 :(得分:0)

var cookie = new HttpCookie("name", "value")
{
    HttpOnly = true
};

不要设置Expires属性,否则您将在浏览器重启时获得持久性cookie。

答案 4 :(得分:0)

将过期日期设置为上一个日期将导致cookie被删除,它“不”使其自动过期。

假设浏览器正在存储一个有效期到明天的cookie。当您将cookie到期日期更改为昨天时,浏览器会嗅探它并说“这已经过期,我要扔掉它”,实际上删除了cookie(实际上没有其他方法可以删除cookie)。

如果您没有设置创建cookie的到期时间,并且不编辑该属性,则cookie会自动成为会话cookie,导致在用户关闭浏览器时删除cookie。

答案 5 :(得分:0)

HttpContext.Response.Cookies.Append(“ cookieName”,“ cookieValue”,新的CookieOptions {Expires = DateTimeOffset.UtcNow.AddDays(1)});