仅在浏览器窗口的生存期内登录WebSecurity

本文关键字:登录 WebSecurity 生存期 浏览器 窗口 | 更新日期: 2023-09-27 18:27:49

我在ASP.NET中使用SimpleMemberships来处理用户登录和注销,我想知道是否有人知道如何设置它,以便他们的登录会话在浏览器关闭时过期。

我将persistCookie设置为false,但即使在关闭浏览器后,它仍然会让他们登录。

编辑:

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, false))
            {
                return RedirectToLocal(returnUrl);
            }
            // If we got this far, something failed, redisplay form
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
            return View(model);
        }

仅在浏览器窗口的生存期内登录WebSecurity

如果cookie不像您的情况那样持久,它将存储在当前浏览器实例的内存中,当您关闭它时,cookie将丢失。不过,请确保您已经关闭了所有浏览器窗口和选项卡(如果有的话)。

当浏览器关闭时,您可以将页面指向注销url,试试这个JavaScript

window.onbeforeunload =function(){
 location.href = 'signOutUrl'; 
}

但问题是你不能保证用户会关闭浏览器。也许他可以断开互联网。而且由于这个客户端JavaScript解决方案,用户可以很容易地更改这些代码。