1

我正在尝试创建一个持久性 cookie。这是代码:

string expires = string.Format("{0} GMT", DateTime.Now.AddHours(1).ToString("ddd, dd-MMM-yyyy HH:mm:ss"));
string newCookie = string.Format("Cookie1=ValueToStore; expires={0}", expires);

Uri location = new Uri("http://www.mysite.com/Application");

System.Windows.Application.SetCookie(location, newCookie);
string theSetCookie = System.Windows.Application.GetCookie(location);

字符串theSetCookie应该包含 cookie 中的所有数据,不是吗?但是它只包含Cookie1=ValueToStore;. 我错过了什么?为什么没有到期日期并使其成为持久性cookie?

注意:我在 Windows 7 中使用 Internet Explorer 9

4

1 回答 1

2

过期时间戳不是 Cookie 值的一部分。当你设置 cookie 时,你设置了一些给定的参数(Expires),但是当你读取它时,你只读取了值。

cookie 过期不应驱动您的应用程序中的任何逻辑:

  • 如果由于某个时间已经过去而不再有效,那么这应该反映在到期中
  • 如果应该使 cookie 具有更长的过期时间,则可以在不知道现有过期时间的情况下进行设置
  • 如果您想删除过期时间(制作会话 cookie),您可以在不设置过期时间的情况下再次设置它

这些场景都不需要知道过期时间戳。

于 2012-05-30T10:35:40.527 回答