您好我在我的asp.net c#应用程序中使用表单身份验证用于身份验证用户。如何在特定用户会话结束(自动)或浏览器关闭后更新用户状态?
谢谢
答案 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调用才能使会话失效。
希望有所帮助。