ASP.NET删除会话/ Cookie

时间:2012-08-15 19:44:22

标签: asp.net session cookies browser

我环顾四周,发现如何在客户端浏览器上删除Cookie,使用Cookie过期或在浏览器退出时删除它们,但不提供过期。

我需要在我的网络应用中将Cookie设置为在特定时间后删除,以及浏览器退出或崩溃时。这可能吗?

提前致谢!

1 个答案:

答案 0 :(得分:4)

  

这可能吗?

不,这不是开箱即用的。有两种类型的cookie:

  1. persistent:为给定日期设置expires属性的一个=>这些cookie作为文件存储在客户端浏览器上,并在浏览器重启后继续运行将按照客户端执行的每个请求发送,直到达到它们到期的日期或服务器明确删除它们为止。
  2. 会话cookie:未设置expires属性的cookie。那些只存在于当前浏览器进程的内存中但永远不会过期(直到浏览器关闭或服务器明确删除它们为止)。
  3. 因此,对于您的方案,您可以通过在值中包含created at日期来使用会话Cookie。然后在每个请求的服务器上,您可以读取此值并与当前日期进行比较。如果所需的时间段已过,则只需使cookie过期,以便在后续请求中不再发送该cookie。顺便说一下,这种技术使用ASP.NET中的Forms Authentication模块。您在web.config中指定超时并决定是否要使用滑动到期,然后在每个请求上,服务器检查是否达到超时,以便做出使cookie无效或更新cookie的决定(如果滑动到期已启用)。