在 Asp.Net MVC 5 Razor 应用程序中检测会话过期
Detect Session Expiry in Asp.Net MVC 5 Razor Application
我正在开发 Asp.Net MVC 5 Razor 应用程序。我正在维护单独的 table 来维护登录信息。当用户登录时,我将 'true' 放在登录成功回调的字段 (IsLoggedIn) 中,即 table。当用户注销时,我将 'false' 放在注销模块成功回调的那个字段中。
我有一个问题。如果用户没有按下注销按钮,并且其会话已过期,则它会被注销。我的注销成功回调没有被调用,数据库中的 'IsLoggedIn' 字段仍然对该用户显示为 true。
我无法找到关于如何检测会话到期事件并调用我的 table 更新函数以将 'false' 放入 'IsLoggedIn' 字段以供用户行使用的任何信息?
有帮助吗?
如果您的应用程序使用 InProc SessionState 模式(如果未指定,这是 ASP.net 中的默认设置)Global.asax,可以在 Session_End 事件中处理会话超时
void Session_End(object sender, EventArgs e) {
// perform your logic
}
在这样做之前记住一件事事件将被调用,但不一定在超时后立即调用。
还要考虑到 According to MSDN,HttpSessionState.Timeout 属性 有一个 setter 并且可以从您的应用程序代码中更改,也可以永久更改web.config
希望对您有所帮助
我正在开发 Asp.Net MVC 5 Razor 应用程序。我正在维护单独的 table 来维护登录信息。当用户登录时,我将 'true' 放在登录成功回调的字段 (IsLoggedIn) 中,即 table。当用户注销时,我将 'false' 放在注销模块成功回调的那个字段中。
我有一个问题。如果用户没有按下注销按钮,并且其会话已过期,则它会被注销。我的注销成功回调没有被调用,数据库中的 'IsLoggedIn' 字段仍然对该用户显示为 true。
我无法找到关于如何检测会话到期事件并调用我的 table 更新函数以将 'false' 放入 'IsLoggedIn' 字段以供用户行使用的任何信息?
有帮助吗?
如果您的应用程序使用 InProc SessionState 模式(如果未指定,这是 ASP.net 中的默认设置)Global.asax,可以在 Session_End 事件中处理会话超时
void Session_End(object sender, EventArgs e) {
// perform your logic
}
在这样做之前记住一件事事件将被调用,但不一定在超时后立即调用。
还要考虑到 According to MSDN,HttpSessionState.Timeout 属性 有一个 setter 并且可以从您的应用程序代码中更改,也可以永久更改web.config
希望对您有所帮助