我正在使用ASP.NET网站,并尝试跟踪活动的会话。
每当通过Session_OnStart和Session_OnEnd事件创建或结束会话时,我都会写入日志文件。
我注意到的是,当用户导航到网页时,它会像我期望的那样为该用户创建一个具有会话ID的会话,但是当用户选择注销并被重定向到主页时,触发了Session_OnEnd,但在此之后,会话Session_OnStart被激活了相同的SessionID。
这是为什么?
答案 0 :(得分:0)
自上一个会话结束以来,其ID不再有效(无论最终用户是否登录都无关紧要)。如this article:
中所述只要服务器收到不包含有效SessionID cookie的请求,就会自动启动新会话。
因此,一旦会话到期后收到任何他/她的请求,就会为该用户启动一个新会话。
答案 1 :(得分:0)
这是Microsoft article所说的。
不支持Cookie的浏览器不会返回SessionID cookie,每次用户请求时,服务器都会创建一个新会话 页。因此,对于每个请求,服务器处理Session_OnStart 脚本并将用户重定向到起始页面。