表单身份验证在特定用户会话结束后更新用户状态

时间:2010-08-19 16:23:29

标签: c# asp.net

您好我在我的asp.net c#应用程序中使用表单身份验证用于身份验证用户。如何在特定用户会话结束(自动)或浏览器关闭后更新用户状态?

谢谢

1 个答案:

答案 0 :(得分:0)

取决于您如何存储会话。

如果您正在使用InProc,那么您可以在Global.asax中挂钩Session_End应用程序事件:

protected void Session_End(Object sender, EventArgs e)
{
    // Remove user session
}

如果你没有使用InProc(即你正在使用SQLState,ASP.NET状态服务等),那么你需要编写一个自定义的HttpModule。 Here是codeproject的一个不错的例子。

请注意,这只会处理过期的会话,即服务器端会话。

浏览器关闭是一个客户端事件,因此要立即处理浏览器关闭事件(即不依赖于服务器上一段时间后发生的超时),您需要编写客户端代码。 / p>

你最好选择加入 onbeforeunload 事件:

<body onbeforeunload="handleBrowserCloseEvent()">

该函数需要对服务器进行AJAX调用才能使会话失效。

希望有所帮助。