我环顾四周,发现如何在客户端浏览器上删除 cookie,要么使用 cookie 的过期时间,要么通过不提供过期时间在浏览器退出时删除它们。

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

提前致谢!

最佳答案



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

  • 持久性:一个为给定日期设置了 expires 属性的 cookie => 这些 cookie 作为文件存储在客户端浏览器上,并且在浏览器重启后仍然存在。将与客户端执行的每个请求一起发送,直到到达它们的到期日期或直到服务器明确删除它们。
  • session cookie:一个没有设置 expires 属性。那些只存在于当前浏览器进程的内存中,但永远不会过期(直到浏览器关闭或服务器明确删除它们)。

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

    关于ASP.NET 删除 session /Cookie,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11976115/

    10-14 18:19
    查看更多