C# ASP.Net标识注销所有会话
如何使用ASP.NET标识注销所有会话? 假设您使用同一用户从两个不同的浏览器登录。当用户从一个浏览器注销时,另一个浏览器的会话也应无效。 (我需要此命令以在更改密码时使用户的所有会话无效。) 您可以使用以下代码使用ASP.Net标识注销当前会话C# ASP.Net标识注销所有会话,c#,asp.net,.net,C#,Asp.net,.net,如何使用ASP.NET标识注销所有会话? 假设您使用同一用户从两个不同的浏览器登录。当用户从一个浏览器注销时,另一个浏览器的会话也应无效。 (我需要此命令以在更改密码时使用户的所有会话无效。) 您可以使用以下代码使用ASP.Net标识注销当前会话 var AutheticationManager = HttpContext.GetOwinContext().Authentication; AuthenticationManager.SignOut(); 这不会注销用户的所有会话 编辑: 这次会
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();
}
}
什么是
MyGlobalObject
?您创建的一个对象,用于存储会话,以便可以枚举会话。请将您的解决方案作为另一个答案发布在此处,您的博客文章由于格式不好而无法阅读