持续完善 Pinda.cn 秒建营销活动 通过低代码 零代码的模式快速创建营销活动,欢迎使用 。

会话状态事件

ASP.NET 
会话状态事件 

ASP.NET 提供了两种帮助您管理用户会话的事件:Session_OnStart 事件和 Session_OnEnd 事件;前者在新会话开始时引发,后者在会话被放弃或过期时引发。

Note注意

如果修改了 ASP.NET 应用程序的 Global.asax 文件或 Web.config 文件,则该应用程序将会重新启动。如果当前会话状态模式为 InProc,则所有存储在应用程序状态或会话状态中的值都将丢失。请注意,有些防病毒软件可以更新应用程序的 Global.asax 或 Web.config 文件的最后修改日期和时间。有关设置会话状态模式的信息,请参见会话状态模式

Session_OnStart 事件

可以通过向 Global.asax 文件添加一个名为 Session_OnStart 的子例程来处理 Session_OnStart 事件。如果请求开始一个新会话,Session_OnStart 子例程会在请求开始时运行。如果请求不包含 SessionID 值或请求所包含的 SessionID 属性引用一个已过期的会话,则会开始一个新会话。

您可以使用 Session_OnStart 事件初始化会话变量并跟踪与会话相关的信息。

Session_OnEnd 事件

可以通过向 Global.asax 文件添加一个名为 Session_OnEnd 的子例程来处理 Session_OnEnd 事件。Session_OnEnd 子例程在 Abandon 方法已被调用或会话已过期时运行。如果超过了某一会话 Timeout 属性指定的分钟数并且在此期间内没有请求该会话,则该会话过期。

只有会话状态属性 Mode 设置为 InProc(默认值)时,才支持 Session_OnEnd 事件。如果会话状态属性 ModeStateServerSQLServer,则忽略 Global.asax 文件中的 Session_OnEnd 事件。如果会话状态属性 Mode 设置为 Custom,则由自定义会话状态存储提供程序决定是否支持 Session_OnEnd 事件。

您可以使用 Session_OnEnd 事件清除与会话相关的信息,如由 SessionID 值跟踪的数据源中的用户信息。

会话事件示例

下面的代码示例演示一个可以添加到 Global.asax 文件的 Session_OnStartSession_OnEnd 子例程示例。在此示例中定义的这些子例程创建一个计数器,用来跟踪正在使用应用程序的应用程序用户的数量。请注意,只有会话状态属性 Mode 设置为 InProc 时,此示例才会正常运行,因为只有进程内会话状态存储才支持 Session_OnEnd 事件。

<script language="VB" runat="server">
Public Sub Application_OnStart()
Application("UsersOnline") = 0
End Sub
Public Sub Session_OnStart()
Application.Lock()
Application("UsersOnline") = CInt(Application("UsersOnline")) + 1
Application.UnLock()
End Sub
Public Sub Session_OnEnd()
Application.Lock()
Application("UsersOnline") = CInt(Application("UsersOnline")) - 1
Application.UnLock()
End Sub
</script>
<script language="C#" runat="server">
public void Application_OnStart()
{
Application["UsersOnline"] = 0;
}
public void Session_OnStart()
{
Application.Lock();
Application["UsersOnline"] = (int)Application["UsersOnline"] + 1;
Application.UnLock();
}
public void Session_OnEnd()
{
Application.Lock();
Application["UsersOnline"] = (int)Application["UsersOnline"] - 1;
Application.UnLock();
}
</script>
posted @ 2006-06-03 23:43  工具人Kim哥  阅读(275)  评论(0)    收藏  举报
持续完善 Pinda.cn 秒建营销活动 通过低代码 零代码的模式快速创建营销活动,欢迎使用 。