【问题标题】:How can I delete a cookie in a particular page?如何删除特定页面中的 cookie?
【发布时间】:2012-03-05 23:47:01
【问题描述】:

我正在 ASP.NET 应用程序的一个页面中创建一个 cookie,我想在另一个页面中删除它。我该怎么做?

【问题讨论】:

    标签: asp.net cookies


    【解决方案1】:

    Microsoft: How To Delete a Cookie

    您不能直接删除用户计算机上的 cookie。但是,您可以通过将 cookie 的到期日期设置为过去的日期来指示用户的浏览器删除 cookie。下次用户向设置 cookie 的域或路径中的页面发出请求时,浏览器将确定 cookie 已过期并将其删除。

    为 cookie 分配一个过去的过期日期

    1. 判断请求中是否存在cookie,如果存在,则新建一个同名的cookie。
    2. 将 cookie 的过期日期设置为过去的某个时间。
    3. 将 cookie 添加到 Response 的 Cookies 集合对象中。

    以下代码示例显示了如何在 cookie 上设置过去的过期日期。

    if (Request.Cookies["UserSettings"] != null)
    {
        HttpCookie myCookie = new HttpCookie("UserSettings");
        myCookie.Expires = DateTime.Now.AddDays(-1d);
        Response.Cookies.Add(myCookie);
    }
    

    注意:调用 Cookies 集合的 Remove 方法会从服务器端的集合中移除 cookie,因此不会将 cookie 发送到客户端。但是,如果 cookie 已经存在,该方法不会从客户端删除它。

    【讨论】:

    • 会话 cookie 怎么样(即 Expires 从未设置过)?调用Remove方法后,什么时候完全去掉?在一个页面周期中,我应该什么时候调用 remove 来立即影响客户端?
    【解决方案2】:

    您是否尝试过让 cookie 过期?

    protected void btnDelete_Click(object sender, EventArgs e)
    {
        Response.Cookies["cookie_name"].Expires = DateTime.Now.AddDays(-1);
    }
    

    【讨论】:

      【解决方案3】:

      How to: Delete a Cookie

      if (Request.Cookies["MyCookie"] != null)
      {
          HttpCookie myCookie = new HttpCookie("MyCookie");
          myCookie.Expires = DateTime.Now.AddDays(-1d);
          Response.Cookies.Add(myCookie);
      }
      

      【讨论】:

        【解决方案4】:

        首先,您必须将 cookie 的到期日期设置为之前的日期。

        例如:

          HttpCookie newCookie = new HttpCookie("newCookie");
          newCookie.Expires = DateTime.Now.AddDays(-1);
          Response.Cookies.Add(newCookie);
        

        现在仅这样做不会有帮助,因为 cookie 不会被物理删除。您必须删除 cookie。

          if (newCookie.Expires < DateTime.Now)
                {
                    Request.Cookies.Remove("newCookie");
                }
        

        给你。这适用于解决方案中的任何页面。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-25
          • 2011-12-09
          • 2015-01-12
          • 2016-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多