代码之家  ›  专栏  ›  技术社区  ›  Andy Evans

在ASP.NET中创建的Cookie是否受会话超时限制?

  •  1
  • Andy Evans  · 技术社区  · 15 年前

    如果我像这样创建一个cookie(在ASP.NET中)

    cookie = new HttpCookie("MyCookie");
    cookie["foo"] = "bar";
    Response.Cookies.Add(cookie);
    

    如果会话过期,该值是否为空/null?

    我的目标是只在浏览器保持打开状态时将数据持久保存在cookie中,即使用户没有主动与应用程序交互。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Nick Craver    15 年前

    不,它不会被会话清除,当您将其设置为时,或当浏览器关闭时,它将过期:)

    By default 没有设置有效期的cookie以这种方式传输到客户端(没有有效期信息)。阿盖恩 默认情况下 这意味着浏览器应该挂起cookie,而不是将其持久化到磁盘上,因此它不是会话过期时的1:1,而是每次关闭浏览器时的1:1。

    示例:

    • 如果我访问你的网站,闲置一个小时,即使我的会话已过期,我仍然会在下一个请求发送cookie。如果我关闭浏览器(所有选项卡,取决于浏览器)并重试,我就不会发送cookie。
    • 相同的 那个饼干。

    也许你会过得更好 storing this data in Session


    会话将由没有 意思 在服务器上。当会话过期时,即使cookie在客户机上,服务器也会得到cookie并“嗯……找不到相应的会话”。

    推荐文章