【发布时间】:2019-03-22 05:29:20
【问题描述】:
如何使会话无效?
再现:
- 使用普通帐号登录
- 导出与我的网站关联的 cookie
- 点击退出按钮
- 确认我已退出网站,cookie 已清除
- 导入从第 2 步复制的 cookie
- 我现在无需通过登录过程即可再次登录该站点
有没有办法让之前复制的cookies失效?
我正在使用标准的 MVC5 注销功能。
public ActionResult LogOff()
{
AuthenticationManager.SignOut();
return RedirectToAction("Index", "Home");
}
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
还尝试仅退出 cookie。
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
认为更改 SecurityStamp 也可以,但由于声明没有更改,因此标记也没有更改。
UserManager.UpdateSecurityStampAsync(user.UserName);
我也试过这个函数,文档说应该使会话无效。 http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon(v=vs.110).aspx
Session.Abandon();
【问题讨论】:
-
这不是重复的。
-
我同意,这不是重复的问题。
-
您是否尝试将
regenerateExpiredSessionId设置为true? (msdn.microsoft.com/en-us/library/ms178582(v=vs.110).aspx) -
这有什么更新吗?我正在尝试做同样的事情。
标签: asp.net-mvc-5