我遇到一个问题,即当我使用OWIN身份验证并完成登录并关闭浏览器或标签浏览器时,会话仍处于活动状态!!
有一种方法可以终止全局asax文件中的会话吗?喜欢session end方法??
当我在我的应用程序上注销时,我调用包含以下代码的操作:
[CustomValidateAntiForgeryToken]
public ActionResult LogOff()
{
var authenticationManager = HttpContext.GetOwinContext().Authentication;
authenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
SqlConnectionManager.Instance = null;
Session.Clear();
Session.Abandon();
Session.RemoveAll();
return RedirectToAction("Index", "Account", new {area = string.Empty});
}
但我想知道在浏览器或标签浏览器关闭时如何执行该代码..谢谢......
答案 0 :(得分:1)
当用户关闭浏览器/标签然后在服务器中调用您的代码时,您可以通过javascript检测到。但是,它不能完全按照您的需要工作。请参阅此post。
我建议您使用web.config文件中的sessionState元素为应用程序配置正确的超时会话。然后,您可以像处理用户数据清理一样处理global.asax文件中的Session_End事件。