0

我有多个具有相同名称、域和路径但值不同的 cookie。这不是设计使然 - 我正在尝试解决此问题,但无法删除它们。我尝试了多种代码变体。这是一个:

string[] cookies = Request.Cookies.AllKeys;
HttpCookie cookie;
string cookieName;
string cookieValue;
for (int i = 0; i < cookies.Count(); i++)
{
  cookieName = Request.Cookies[i].Name;
  if (cookieName == "ASP.NET_SessionId")
  {
    //  Do not delete session cookie or we will be logged out
    continue;
  }

  cookieValue = Request.Cookies[i].Value;
  cookie = new HttpCookie(cookieName);
  cookie.Value = "";
  cookie.Expires = DateTime.Now.AddDays(-1);
  Response.Cookies.Add(cookie);
}

这是另一个:

string[] cookies = Request.Cookies.AllKeys;
for (int i = 0; i < Request.Cookies.AllKeys.Count(); i++)
{
    if (Request.Cookies[i].Name == "ASP.NET_SessionId")
    {
        //  Do not delete session cookie or we will be logged out
        continue;
    }

    Request.Cookies[i].Expires = DateTime.Now.AddDays(-1);
}

当我在 Request.Cookies 中列出 cookie 时,“已删除”的 cookie 显示为昨天的到期日期,但还有其他 cookie 的到期日期为 0001 年 1 月 1 日。这些是那些不会接受暗示并徒步旅行的人。

非常感谢帮助。

4

1 回答 1

1

您是否尝试过将过期日期设置为过去一年而不是 1 天?

这是关于删除 cookie的帖子。在他的代码中,他将日期追溯到 30 年前。

在 cookie 上设置域。

  cookieValue = Request.Cookies[i].Value;
  cookie = new HttpCookie(cookieName);
  cookie.Value = "";
  cookie.Domain = "dev.domain.com";
  cookie.Expires = DateTime.Now.AddDays(-1);
  Response.Cookies.Add(cookie);
于 2012-08-08T17:01:39.593 回答