【发布时间】:2017-02-02 06:14:43
【问题描述】:
我正在尝试删除一个 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
当我再次检索 cookie 时,没有任何变化。我检查 w/ FireFox 和 Chrome 相同的行为。有趣的是,到期日期在浏览器上正确显示,但在代码上。
我尝试了以下但没有工作。
- 将到期日设置为(明天),然后再次将其设置为昨天。
- 重启浏览器(发生不同的浏览器和人)
- 设置一些值
- 使用 HttpContext.Current.Request.Cookies["dcart"]....
- Request.Cookies["dcart"].Expires = DateTime.Now.AddYears(-10);
PS。该代码无法直接在您的机器上运行,因为您没有 cookie。
【问题讨论】:
-
使用 Fiddler(或任何其他 HTTP 调试器)并查看 cookie 是否实际发送出去。 IE。在发送之前可能会调用从响应中删除所有 cookie...
-
@DaveZych Request.Cookies["dcart"].Expires = DateTime.Now.AddYears(-10);没用。