我环顾四周,发现如何在客户端浏览器上删除 cookie,要么使用 cookie 的过期时间,要么通过不提供过期时间在浏览器退出时删除它们。
我需要在我的网络应用程序中设置 cookie 以在特定时间后删除,而且如果浏览器退出或崩溃。这可能吗?
提前致谢!
最佳答案
不,这是开箱即用的。有两种类型的 cookie:
expires
属性的 cookie => 这些 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/