2012-08-15 115 views
3

我环顾四周,发现如何删除客户端浏览器上的cookie,使用cookie的过期或在浏览器退出时通过不提供过期来删除它们。ASP.NET删除会话/ Cookies

我需要在我的web应用程序中设置Cookie以在特定时间后删除,但如果浏览器退出或崩溃。这可能吗?

在此先感谢!

回答

4

这可能吗?

不,这是不可能的。有2种类型的Cookie:

  1. 执着:一个expires给定日期=>这些Cookie存储在客户端浏览器上的文件和生存重新启动浏览器属性设置。将根据客户端执行的每个请求发送它们,直到达到它们到期的日期为止,或者直到服务器明确删除它们。
  2. 会话cookie:一个没有设置expires属性。那些只存在于当前浏览器进程的内存中,但不会过期(直到浏览器关闭或直到服务器明确删除它们)。

因此,对于您的场景,您可以通过在值中包含created at日期来使用会话cookie。然后在每次请求时在服务器上读取此值并与当前日期进行比较。如果所需期限已过,则只需将cookie过期,以便在随后的请求中不再发送该cookie。顺便说一下,这种技术在ASP.NET中使用了Forms Authentication模块。您可以在web.config中指定一个超时值,并决定是否要使用滑动过期,然后在每次请求时,服务器都会检查是否达到超时,以便做出使cookie无效或更新的决定(如果滑动到期已启用)。