关闭浏览器或标签浏览器时使用OWIN关闭会话

时间:2015-08-19 01:57:07

标签: javascript c# jquery asp.net-mvc

我遇到一个问题,即当我使用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});
        }

但我想知道在浏览器或标签浏览器关闭时如何执行该代码..谢谢......

1 个答案:

答案 0 :(得分:1)

当用户关闭浏览器/标签然后在服务器中调用您的代码时,您可以通过javascript检测到。但是,它不能完全按照您的需要工作。请参阅此post

我建议您使用web.config文件中的sessionState元素为应用程序配置正确的超时会话。然后,您可以像处理用户数据清理一样处理global.asax文件中的Session_End事件。