如何使用 ASP.NET Identity 注销所有会话?
假设您使用同一用户从两个不同的浏览器登录。当用户从一个浏览器注销时,另一个浏览器的会话也应该失效。
(我需要这个来使用户在更改密码时的所有会话无效。)
您可以使用以下代码使用 ASP.Net Identity 注销当前会话。
var AutheticationManager = HttpContext.GetOwinContext().Authentication;
AuthenticationManager.SignOut();
这不会注销用户的所有会话。
编辑:
会议的想法是一个很好的起点。我解决了这个问题并写了一个博客文章如果您遇到同样的问题。
您可以通过在列表中从 Global.asax 添加新创建的会话来实现此目的。
随后进行迭代以比较用户并注销用户的会话。
protected void Session_Start(object sender, EventArgs e)
{
MyGlobalObject.Sessions.Add(HttpContext.GetOwinContext().Authentication);
}
然后,在注销事件中:
private void SignoutAll()
{
foreach (var authenticationManager in MyGlobalObject.Sessions)
{
authenticationManager.SignOut();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)