会话结束不会被触发 [英] Session end is not fired

查看:119
本文介绍了会话结束不会被触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

我想在会话结束时更新用户状态。

任何人都可以帮我这个吗?

这里是我的代码块



Hello,
I would like to update user status on session end.
Can any one please help me on this?
Here is my code block

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
       Try
           Dim clsbss As New cls_business
           Dim clsAccountIndicator As New cls_usermanagement
           '    Dim clsAccountIndicator As New cls_usermanagement
           If Session("UserName") Is Nothing And clsbss.bssIsLogin Then
               Session.Abandon()
               clsbss.bssAddActionLog("Session_End", clsbss.bssCookiesGetUserSID, "User (" & clsbss.bssCookiesGetUserName & ") has logged out at " & Format(Now, "dd MMM yyyy hh:mm tt"), Now, Now, clsbss.bssCookiesGetUserName, clsbss.bssCookiesGetUserSID, Now)
               clsAccountIndicator.Update_Account_Indicator_Status(clsbss.bssCookiesGetUserSID, 2)
               Thread.Sleep(500)
               clsbss.bssLogout()
               'Response.Redirect(System.Configuration.ConfigurationSettings.AppSettings("hosturl") & "index.aspx")
           End If

       Catch ex As Exception
           'Response.Redirect(System.Configuration.ConfigurationSettings.AppSettings("hosturl") & "index.aspx")
       End Try
   End Sub





也在配置中



Also in config

<sessionstate mode="InProc" timeout="5" />

推荐答案

1。如果会话中没有存储数据,Session_End将永远不会被击中

2. Session_End没有立即被超时(或放弃)命中,而是在下一次请求到同一个会话时(似乎是对于正常站点立即)...

更多 - 不要在Session_End中使用Session.Abandon()!
1. Session_End will never be hit if no data stored on the session
2. Session_End not got hit immediately with timeout (or Abandon), but on the next request to the very same session (which is seems to be immediate for a normal site)...
More - do not use Session.Abandon() from within Session_End!


这篇关于会话结束不会被触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆