【发布时间】:2010-10-12 11:14:09
【问题描述】:
我对如何将常规的 HttpCookie 对象制作为在会话结束时过期的 cookie 很感兴趣。我对某人 showing me HttpContext.Session 不感兴趣。与普通 cookie 相比,会话 cookie 在响应标头中的外观如何?如何修改 HttpCookie 以在会话结束时过期?谢谢!
【问题讨论】:
标签: .net session cookies session-state
我对如何将常规的 HttpCookie 对象制作为在会话结束时过期的 cookie 很感兴趣。我对某人 showing me HttpContext.Session 不感兴趣。与普通 cookie 相比,会话 cookie 在响应标头中的外观如何?如何修改 HttpCookie 以在会话结束时过期?谢谢!
【问题讨论】:
标签: .net session cookies session-state
cookie 过期:
要将 cookie 更改为会话 cookie,只需分配 MinValue。
httpCookie.Expires = DateTime.MinValue;
如果您的 cookie 是新的。 DateTime 的默认值应为 DateTime.MinValue,无需设置。
呼叫MeLaNN
【讨论】:
过期时间为 DateTime.MinValue (1/1/0001) 的 cookie 将在会话结束时过期。这是 asp.net 中 cookie 的默认到期日期。
您可以通过将过期日期设置为“现在”之前的某个时间(DateTime.Now.AddDays(-1d))来强制从客户端立即删除 cookie,在这种情况下,它将在到达客户端时被删除。
如果在编码 HttpCookie 时我们有可空类型,我的猜测是空日期将等同于基于会话的 cookie,其他任何内容都将转换为过期值,但事实并非如此。
【讨论】:
会话 cookie 只是没有设置任何到期日期的 cookie。
Response.Cookies.Add(new HttpCookie("name", "value"));
或:
Response.Cookies["name"] = "value";
【讨论】: