代码之家  ›  专栏  ›  技术社区  ›  Dan Atkinson

带Expires集的httpcookie返回datetime.minvalue

  •  4
  • Dan Atkinson  · 技术社区  · 15 年前

    我在做饼干的时候看到了一些奇怪的事情…

    行动:

    string cookieName = "foo";
    string cookieValue = "bar";
    
    //Set a cookie in the response, along with the Expires.
    this.ControllerContext.HttpContext.Response.Cookies.Add(
      new HttpCookie(cookieName, cookieValue)
      {
        Expires = DateTime.Now.AddHours(1)
      }
    );
    

    在调试时,我可以看到这个新的cookie在将来有一个小时的到期时间,但是,当我在视图中查看cookie时,到期时间并不存在…

    观点:

    <%= Request.Cookies.Get("foo").Value %>
    

    退换商品 bar .

    <%= Request.Cookies.Get("foo").Expires %>
    

    退换商品 01/01/0001 00:00:00

    有什么想法吗?!

    3 回复  |  直到 15 年前
        1
  •  13
  •   Jon Skeet    15 年前

    你在看 请求 -不包含到期时间。服务器告诉客户机cookie什么时候到期;客户机也不需要告诉服务器:)

        2
  •  3
  •   yfeldblum    15 年前

    Response.Cookies 是一个非常不同的东西 Request.Cookies .

        3
  •  1
  •   Chuck Conway    15 年前

    两件事: 弗斯特 ,如果在将响应推送到客户机之前查看请求,则请求将不包含您的更新。

    第二 ,如果您正在设置一个cookie,然后使用response.redirect,则可能没有将您的cookie值推送到客户端。在covers response.redirect下调用“thread.abort()”,这将杀死线程。