我有一个名为“g”的cookie,其值为“y”或“n”
我这样设置:
Response.Cookies("g").Value = "y"
Response.Cookies("g").Expires = DateTime.Now.AddHours(1)
我改变它:
Request.Cookies("g").Value = "n"
我试图像这样摧毁它
Response.Cookies("g").Expires = DateTime.Now.AddHours(-1)
Cookie设置正常,但我无法更改其值或销毁它
谢谢!
答案 0 :(得分:4)
尝试以这种方式删除它:
if (Request.Cookies["g"] != null)
{
HttpCookie myCookie = new HttpCookie("g");
myCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(myCookie);
}
我认为如果您尝试创建cookie并将其添加到响应中,它应该可以正常工作。
您希望将新Cookie添加到具有相同名称的响应中。我建议回去一天而不是一小时。
要更改cookie的值,请执行以下操作:
if (Request.Cookies["g"] != null)
{
HttpCookie myCookie = new HttpCookie("g");
myCookie.Expires = DateTime.Now.AddHours(1);
myCookie.Value = "n";
Response.Cookies.Add(myCookie);
}
这些示例需要注意的重要一点是,我们正在观察只读请求集合以查看其中已有的内容,然后我们通过添加新cookie来替换那里的那个以进行更改或删除之前。
答案 1 :(得分:1)
您无法更改请求Cookie,您只能在回复中“重新设置”它。因此,您需要在Response中设置相同的cookie。
然而,Expire-trick应该可行,但有时DST(夏令时)可能会混淆浏览器。您是否尝试使用非常旧的DateTime(如1970年)以使cookie过期?