仅在浏览器窗口的生存期内登录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);
}
如果cookie不像您的情况那样持久,它将存储在当前浏览器实例的内存中,当您关闭它时,cookie将丢失。不过,请确保您已经关闭了所有浏览器窗口和选项卡(如果有的话)。
当浏览器关闭时,您可以将页面指向注销url,试试这个JavaScript
window.onbeforeunload =function(){
location.href = 'signOutUrl';
}
但问题是你不能保证用户会关闭浏览器。也许他可以断开互联网。而且由于这个客户端JavaScript解决方案,用户可以很容易地更改这些代码。