如何使用ASP.NET标识注销所有会话?假设您是从具有相同用户的两个不同浏览器登录的.当用户从一个浏览器注销时,另一个浏览器的会话也应该无效.(我需要这个来改变用户密码更改的所有会话.)
您可以使用以下代码使用ASP.Net Identity注销当前会话.
var AutheticationManager = HttpContext.GetOwinContext().Authentication;
AuthenticationManager.SignOut();
Run Code Online (Sandbox Code Playgroud)
这不会签署用户的所有会话.
编辑:会议的想法是一个很好的起点.我解决了这个问题,写了一篇博文,以防你遇到同样的问题.
您可以通过在列表中添加Global.asax中新创建的会话来实现此目的.
之后迭代以比较用户和SignOut用户的会话.
protected void Session_Start(object sender, EventArgs e)
{
MyGlobalObject.Sessions.Add(HttpContext.GetOwinContext().Authentication);
}
Run Code Online (Sandbox Code Playgroud)
然后,在注销事件中:
private void SignoutAll()
{
foreach (var authenticationManager in MyGlobalObject.Sessions)
{
authenticationManager.SignOut();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |