为什么会话在页面注销后启动?

时间:2018-01-17 18:03:36

标签: asp.net session

我正在使用ASP.NET网站,并尝试跟踪活动的会话。

每当通过Session_OnStart和Session_OnEnd事件创建或结束会话时,我都会写入日志文件。

我注意到的是,当用户导航到网页时,它会像我期望的那样为该用户创建一个具有会话ID的会话,但是当用户选择注销并被重定向到主页时,触发了Session_OnEnd,但在此之后,会话Session_OnStart被激活了相同的SessionID。

这是为什么?

2 个答案:

答案 0 :(得分:0)

自上一个会话结束以来,其ID不再有效(无论最终用户是否登录都无关紧要)。如this article

中所述
  

只要服务器收到不包含有效SessionID cookie的请求,就会自动启动新会话。

因此,一旦会话到期后收到任何他/她的请求,就会为该用户启动一个新会话。

答案 1 :(得分:0)

这是Microsoft article所说的。

  

不支持Cookie的浏览器不会返回SessionID   cookie,每次用户请求时,服务器都会创建一个新会话   页。因此,对于每个请求,服务器处理Session_OnStart   脚本并将用户重定向到起始页面。