使用System.Windows.Application.SetCookie创建持久性cookie失败?

时间:2012-05-30 10:02:23

标签: c# .net wpf cookies

我正在尝试创建一个持久性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

1 个答案:

答案 0 :(得分:2)

到期时间戳不是Cookie值的一部分。当您设置cookie时,您将其与一些给定参数(Expires)一起设置,但是当您阅读它时,您只能读取该值。

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

  • 如果由于某段时间过去而不再有效,那么这应该在到期时反映
  • 如果cookie应该有更长的过期时间,可以在不知道现有过期时设置
  • 如果您要删除过期(制作会话Cookie),您可以在没有过期设置的情况下重新设置它

这些方案都不需要知道到期时间戳。