我环顾四周,发现如何在客户端浏览器上删除Cookie,使用Cookie过期或在浏览器退出时删除它们,但不提供过期。
我需要在我的网络应用中将Cookie设置为在特定时间后删除,以及浏览器退出或崩溃时。这可能吗?
提前致谢!
答案 0 :(得分:4)
这可能吗?
不,这不是开箱即用的。有两种类型的cookie:
expires
属性的一个=>这些cookie作为文件存储在客户端浏览器上,并在浏览器重启后继续运行将按照客户端执行的每个请求发送,直到达到它们到期的日期或服务器明确删除它们为止。expires
属性的cookie。那些只存在于当前浏览器进程的内存中但永远不会过期(直到浏览器关闭或服务器明确删除它们为止)。因此,对于您的方案,您可以通过在值中包含created at
日期来使用会话Cookie。然后在每个请求的服务器上,您可以读取此值并与当前日期进行比较。如果所需的时间段已过,则只需使cookie过期,以便在后续请求中不再发送该cookie。顺便说一下,这种技术使用ASP.NET中的Forms Authentication模块。您在web.config中指定超时并决定是否要使用滑动到期,然后在每个请求上,服务器检查是否达到超时,以便做出使cookie无效或更新cookie的决定(如果滑动到期已启用)。