我正在尝试删除一个 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 时,没有任何变化。我检查了 FireFox 和 Chrome 的相同行为。有趣的一点是到期日期在浏览器上正确显示,但在代码上显示。
我尝试了以下但没有成功。
- 将到期日设置为(明天),然后再次将其设置为昨天。
- 重新启动浏览器(发生不同的浏览器和人)
- 设置一些值
- 使用 HttpContext.Current.Request.Cookies["dcart"]...
- Request.Cookies["dcart"].Expires = DateTime.Now.AddYears(-10);
附言。代码不会直接在您的机器上运行,因为您没有 cookie。
最佳答案
已解决
问题出在路径上。我请求的 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);
}
当我添加路径信息时,它被删除了。
注意:我使用 Firebug 来跟踪 cookie 路径。
关于c# - C#中的删除cookie问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13754541/