ASP.Net Identity注销所有会话

如何使用ASP.NET标识注销所有会话? 假设您是从具有相同用户的两个不同浏览器登录的。 当用户从一个浏览器注销时,另一个浏览器的会话也应该无效。 (我需要这个来改变用户密码更改的所有会话。)

您可以使用以下代码使用ASP.Net Identity注销当前会话。

var AutheticationManager = HttpContext.GetOwinContext().Authentication; AuthenticationManager.SignOut(); 

这不会签署用户的所有会话。

编辑:会议的想法是一个很好的起点。 我解决了这个问题并写了一篇博文 ,以防你遇到同样的问题。

您可以通过在列表中添加Global.asax中新创建的会话来实现此目的。

之后迭代以比较用户和SignOut用户的会话。

 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(); } }