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