作为安全审核的一部分,我们必须确保在用户注销时清除会话ID(而不仅仅是会话)并使用新的会话ID。
但是,目前,如果用户的会话只是超时,会话ID将重新用于下一个会话。
有没有办法检测会话是否超时,并在那时创建新的会话ID?
答案 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/)并且它处理了所有这些开箱即用。