-1

我想知道即使用户关闭浏览器,您是否可以帮助我处理持久性 cookie。

我在 IIS 和 asp 上运行网络,会话工作正常,但每次用户关闭浏览器时,会话都会丢失,因此购物车也会丢失。

我认为这可能与 global.asa 文件有关?(我在 global.asax 上看到了有关持久性 cookie 的答案,但我的网站使用的是 global.asa)

这是我当前的 global.asa 文件,有什么想法吗?

Sub Application_OnStart
  Application("ActiveUsers") = 0
End Sub

Sub Session_OnStart
  Session.Timeout = 600
  Session("Start") = Now
  Application.Lock
  Application("ActiveUsers") = Application("ActiveUsers") + 1
  Application.UnLock
End Sub

Sub Session_OnEnd
 Application.Lock
 Application("ActiveUsers") = Application("ActiveUsers") - 1
 Application.UnLock
End Sub
</script>   

非常感谢!

4

1 回答 1

0

据我所知,如果您没有为它设置长时间的超时,当您关闭浏览器时,cookie 将不存在。因此,即使会话仍然存在于服务器中,会话 id 也会丢失(并且会在超过超时值时过期)。

因此,对于您的情况,您应该为 cookie 超时设置很长的时间,但不要像代码所示那样设置会话超时。您可以将页面上的 cookie 超时值设置为提到的重复问题:

<script>
void function session_cookie_change() {
    var s,a;
    s=document.cookie.split(/\=/);            
    a=s[0];            
    var dtExpires = new Date();                
    dtExpires.setFullYear(1970,1,1);            
    a += ';
    // The expires parameter of the cookie 
    // is set to the previous date 
    expires=' + dtExpires.toGMTString();            
    a += '; path=/';             
    document.cookie=a;
}
</script>
<body onload='session_cookie_change()'>

除此之外,您还需要注意会话ID。虽然关闭浏览器时cookie不会被删除,但当您重新打开浏览器连接到服务器时,它会使用另一个会话ID。因此,您可能还需要输入chrome://flagschrome 地址并搜索samesite然后禁用它。

于 2021-07-23T07:12:11.450 回答