我对如何定期制作感兴趣 HttpCookie 对象存储在 cookie 中,该 cookie 在会话结束时过期。我对某人不感兴趣 showing me HttpContext.Session. 。与普通 cookie 相比,会话 cookie 在响应标头中看起来如何?我怎样才能修改一个 HttpCookie 在会话结束时过期?谢谢!

有帮助吗?

解决方案

会话cookie只是一个没有设置过期日期的cookie。

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

或:

Response.Cookies["name"] = "value";

其他提示

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

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

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

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,不需要设置。

叫我拉恩

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top