6

我对如何将常规HttpCookie对象制作成在会话结束时过期的 cookie 很感兴趣。我对某人不感兴趣showing me HttpContext.Session。与普通 cookie 相比,会话 cookie 在响应标头中的外观如何?如何修改 aHttpCookie以在会话结束时过期?谢谢!

4

3 回答 3

14

会话 cookie 只是没有设置任何到期日期的 cookie。

Response.Cookies.Add(new HttpCookie("name", "value"));

或者:

Response.Cookies["name"] = "value";
于 2009-03-10T16:04:10.993 回答
7

DateTime.MinValue (1/1/0001) 过期的 cookie 将在会话结束时过期。这是 asp.net 中 cookie 的默认到期日期。

您可以通过将过期日期设置为“现在”之前的某个时间(DateTime.Now.AddDays(-1d))来强制从客户端立即删除 cookie,在这种情况下,它将在到达客户端时被删除。

如果在编码 HttpCookie 时我们有可空类型,我的猜测是空日期将等同于基于会话的 cookie,其他任何内容都将转换为过期值,但事实并非如此。

于 2009-03-10T16:00:06.900 回答
5

cookie 过期:

  • 会话 cookie - 到期日期应为 DateTime.MinValue,即 1/1/0001 00:00:00
  • 普通 cookie(限时)- 过期日期是等于或大于当前 DateTime.Now 的任何未来日期。
  • 已删除的 cookie - DateTime.MinValue 和 DateTime.Now 之间的任何时间。

要将 cookie 更改为会话 cookie,只需分配 MinValue。

httpCookie.Expires = DateTime.MinValue;

如果您的 cookie 是新的。DateTime 的默认值应为 DateTime.MinValue,无需设置。

呼叫MeLaNN

于 2009-10-08T14:31:16.920 回答