我正在开发一个使用ASP.NET成员资格和ASP.NET登录控件来处理用户登录的Web应用程序。当有人登录时,我在会话中存储一个整数值,以识别用户所属的公司。此值几乎用于对应用程序中的数据库进行的所有查询。问题是存储在会话中的此值在大约20分钟后超时但用户仍然登录到应用程序。
我可以通过
检查会话变量是否超时If Context.Session.Item("CurrentClientID") Is Nothing Then
' session has timed out
' I can reset it in here
End If
我想知道的是我如何在每次服务器请求时都进行检查,我使用了很多ajax,因此检查母版页是不合适的。我尝试将它放在global.asax文件的Application_BeginRequest部分,但这会导致用户在登录页面上但尚未登录时出现问题,并且每次页面加载时都会触发多次(每个css和js文件都会触发)加载)