ASP.Net 标识强制从 SQL 注销



我正在为我的MVC 5应用程序使用ASPNET Identity表。每天晚上,我们都会对数据库进行"维护"。如果我们修改该用户下的某些内容,我想停用他们的当前会话,以便他们在 Web 应用程序中执行的下一个操作将他们踢回登录屏幕。身份验证/授权已经使用 AspNet.Identity 内置到我的应用程序中。我只需要一种方法来通过设置一个标志(如果存在)来唤醒它。

例如,ASPNETUsers 表有一个"非活动"列,但这太永久了。我正在寻找"ThisGuyIsLoggedIn"列。

这接近于同一个问题,但答案是从 MVC 内部管理它,这不是一个选择。

在所有在线用户中强制注销特定用户

在使用我意识到的一些列之后,您可以更改 SecurityStamp 列,这将使用户无效并导致任何身份验证失败。只是不要将其更改为 NULL。

 UPDATE AspNetUsers
 SET SecurityStamp = NEWID()
 WHERE Id = @USER_ID

我想分享这个链接,并详细说明如何强制用户注销。

https://tech.trailmax.info/2015/09/prevent-multiple-logins-in-asp-net-identity/

GitHub上的完整项目:https://github.com/shaahink/Prevent-Multiple-Login-ASPNETIdentity

如果需要重置安全标记:

 var result = await UserManager.UpdateSecurityStampAsync(user.Id);

从管理面板重置用户标记是非常好的解决方案。

相关内容

  • 没有找到相关文章