【发布时间】:2017-05-29 12:16:03
【问题描述】:
说明:
我在 mvc 项目中使用 cookie 来记住用户最近选择的下载格式。在创建 cookie 时,我正在为该 cookie 设置到期日期。当我尝试获取该 cookie 和该 cookie 的到期日期时,我总是将“1/1/0001”作为到期日期。我不明白这背后的原因。请帮助解释这背后的原因。
代码:
1) 设置cookie及其有效期:
Response.Cookies.Add(new HttpCookie(base.LoggedOnUser.Email, exportFileFormat.ToString()));
var requestCookie = Request.Cookies[base.LoggedOnUser.Email];
if (requestCookie != null)
{
requestCookie.Expires = DateTime.UtcNow.AddDays(Convert.ToInt32(ConfigurationManager.AppSettings["FileFormatTypeCookieExpiry"]));
}
2) 获取 cookie 及其有效期:
var fileFormatTypeCookie = HttpContext.Current.Request.Cookies[CurrentUser.Email];
if (fileFormatTypeCookie != null && fileFormatTypeCookie.Value != null)
{
var exportFileFormat = fileFormatTypeCookie.Value;
var expiry = fileFormatTypeCookie.Expires;
}
变量到期时间始终为“1/1/0001”。
【问题讨论】:
-
如果记录此行返回的值:DateTime.UtcNow.AddDays(Convert.ToInt32(ConfigurationManager.AppSettings["FileFormatTypeCookieExpiry"])) ?
-
记录的值是正确的到期日期。但是当我尝试从 cookie 获取到期日期时,它总是“1/1/0001”
标签: asp.net-mvc cookies