【发布时间】:2017-11-10 07:57:15
【问题描述】:
我正在设置这样的 cookie:
protected void SetCookie(bool value, int expiration)
{
var cookie = Response.Cookies[COOKIE_NAME] ?? new HttpCookie(COOKIE_NAME);
cookie.Value = value.ToString();
cookie.Expires = DateTime.UtcNow.AddDays(expiration);
Response.Cookies.Set(cookie);
}
在 SetCookie 函数中,当我检查最后一行的 cookie 时,Expiration 设置为明天的日期。
但是,当我在下一页加载时检索此 cookie:
var cookie = Request.Cookies[COOKIE_NAME];
cookie存在,但过期日期是1/1/0001 12:00:00 AM的默认日期值
【问题讨论】:
-
参考您的第一个代码块:您应该读取/检索来自
Request.Cookies的cookie,而不是响应。 -
@Igor 我认为这实际上并不重要,因为无论如何属性都会被覆盖。如所写,我认为如果
SetCookie被多次调用,它会重用cookie 对象。就个人而言,我会完全删除检查并始终初始化一个新实例。 -
您是否检查过任何更改到期日期的客户端代码,因为 cookie 可以在客户端更改,这可能是导致问题的原因。
标签: c# cookies setcookie httpcookie