注销解决方案(ASP.NET)

Irg*_*gat 3 asp.net logout

我编写了一个网站,准备了一个登录机制(通过文本框,而不是登录工具),用户想要注销,他们点击注销按钮.但是,我的问题是,如果用户没有点击注销按钮或关闭网页或切换另一个,我怎么能理解这种情况?
根据我的机制,当用户注销时,在DB中进行一些插入和删除操作.
我也希望关闭页面,切换另一个页面.
谢谢.

Bri*_*Kay 14

听起来你在注销时正在进行数据库操作,当人们只是在没有点击注销按钮的情况下离开时,代码就不会触发.

在你的global.asax中,看一下session_end.也许你可以把你的操作放在那里.

protected void Session_End(Object sender, EventArgs e) 
{ 
    // Your code goes here. Since your logout code probably relied on the user being
    // logged in, you might end up checking Request.IsAuthenticated here. Why? Because
    // this event fires any time a session ends -- even if the user is not logged in! 
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用它,它实际上会在IIS会话结束时触发,而不是在浏览器关闭时触发.默认情况下,会话在20分钟不活动后超时.

实现此操作后,您可以让您的注销页面调用Session.Abandon,它将触发Session_End.这对我来说似乎很干净.

这是一个MSDN链接,其中包含有关会话事件的更多详细信息:http://msdn.microsoft.com/en-us/library/ms178583.aspx

  • 会话结束真的是你所希望的 (2认同)