删除C#中的cookie问题

asr*_*asr 7 c# asp.net cookies

我正在尝试删除cookie,但它不会被删除.这是我尝试使用的代码.

if (Request.Cookies["dcart"] != null)
{
    Response.Write(Request.Cookies["dcart"].Expires);
    // Response 1/1/0001 12:00:00 AM

    Response.Write(Request.Cookies["dcart"].Value);
    // Response 229884

    HttpCookie myCookie = new HttpCookie("dcart");
    myCookie.Expires = DateTime.Now.AddDays(-1d);
    myCookie.Value = "";
    Response.Cookies.Add(myCookie);
}

Response.Write(Request.Cookies["dcart"].Expires);
// Response 1/1/0001 12:00:00 AM
Response.Write(Request.Cookies["dcart"].Value);
// Response 229884
Run Code Online (Sandbox Code Playgroud)

当我再次检索cookie时,没有任何变化.我检查了与FireFox和Chrome相同的行为.有趣的是,到期日期在浏览器上正确显示,但在代码上显示.

我尝试了以下但没有奏效.

  • 将到期日设置为(明天)并再次将其设置为昨天.
  • 重启浏览器(发生在不同的浏览器和人身上)
  • 设置值的东西
  • 使用HttpContext.Current.Request.Cookies ["dcart"] ....
  • Request.Cookies ["dcart"].Expires = DateTime.Now.AddYears(-10);

PS.代码不能直接在您的计算机上运行,​​因为您没有cookie.

asr*_*asr 5

解决了

问题是路径。我请求的 cookie 位于“/store”路径下,而我将路径信息响应到“/”。

if (Request.Cookies["dcart"] != null)
{
   HttpCookie myCookie = new HttpCookie("dcart");
   myCookie.Expires = DateTime.Now.AddDays(-1d);
   myCookie.Path = "/store";
   Response.Cookies.Add(myCookie);
}
Run Code Online (Sandbox Code Playgroud)

当我添加路径信息时,它被删除了。

注意:我使用 Firebug 来跟踪 cookie 路径。