是否可以检测会话超时?

时间:2015-12-14 16:45:00

标签: asp.net session

作为安全审核的一部分,我们必须确保在用户注销时清除会话ID(而不仅仅是会话)并使用新的会话ID。

但是,目前,如果用户的会话只是超时,会话ID将重新用于下一个会话。

有没有办法检测会话是否超时,并在那时创建新的会话ID?

2 个答案:

答案 0 :(得分:2)

以下是有关会话ID重新使用https://support.microsoft.com/en-us/kb/899918的文章。

将此代码添加到logout或session_end方法

Session.Abandon(); 
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); 

在Web.config中

<sessionState regenerateExpiredSessionId="true"></sessionState>

我没有这个需要,但似乎这对你来说至少是一个很好的起点。

答案 1 :(得分:0)

有这种方法:http://www.codeproject.com/Articles/21156/ASP-NET-HttpModule-for-handling-session-end-with-S

但由于我们使用的是服务器场,因此它不适用于我们的情况。

相反,我最终使用了NWebsec.SessionSecurity(https://www.nuget.org/packages/NWebsec.SessionSecurity/)并且它处理了所有这些开箱即用。