ASP.NET浏览器即使在过期后也不会删除cookie

时间:2012-01-20 00:07:25

标签: asp.net cookies

我通过将Expires属性设置为过去日期来过期cookie,我可以在Fiddler中看到它有效。但是,

  1. 我没有看到Firefox Cookie窗口中的更改已更新。我尝试关闭cookie和Firefox窗口,但没有运气。
  2. 当我向同一页面(同一域名)发出另一个请求时,这些cookie会再次出现
  3. 现在我知道浏览器会在喜欢的时候删除cookie,但我认为它会在用户再次访问同一网站之前。

    如何确保浏览器在下一次请求来自该用户之前删除它们?

2 个答案:

答案 0 :(得分:2)

为了成功删除Cookie,您不仅需要设置过去的Expires日期,还需要指定与您相同的pathdomain属性首次设置cookie时使用。每个请求都不会将这些属性发送到服务器,因此您必须以其他方式跟踪它们。

这样做的原因是您可以使用两个具有相同名称但具有不同pathdomain属性的cookie,因此浏览器需要所有详细信息才能知道要删除哪个。

答案 1 :(得分:0)

当您设置cookie的Expires属性时,您基本上设置了持久性cookie。这意味着此cookie不再存储在浏览器的内存中,而是保存在客户端计算机上,它将在浏览器甚至计算机重启后继续存在,直到达到指定的日期。如果您没有设置Expires属性,那么您将创建一个非持久性cookie,该cookie仅在用户关闭浏览器之前有效(当前选项卡将关闭cookie值并且如果用户打开一个新值选项卡并再次访问您的网站,cookie将再次发送,您无能为力)。在HTTP协议规范中,每个选项卡/窗口都没有cookie的概念,这显然是正常的,因为在本规范中没有浏览器 tab window 的概念。

要了解有关Cookie的更多信息,请查看涵盖不同类型的following article