我对如何将常规HttpCookie
对象制作成在会话结束时过期的 cookie 很感兴趣。我对某人不感兴趣showing me HttpContext.Session
。与普通 cookie 相比,会话 cookie 在响应标头中的外观如何?如何修改 aHttpCookie
以在会话结束时过期?谢谢!
Shawn
问问题
5495 次
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 回答