ASP.Net Identity Force从SQL注销

问题描述 投票:3回答:2

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

例如,ASPNETUsers表具有“非活动”列,但这太永久了。我正在寻找“ ThisGuyIsLoggedIn”列。

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

forcefully log out a specific user among all online users

sql-server asp.net-mvc asp.net-identity
2个回答
2
投票

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

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

0
投票

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

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

这是从管理面板重置用户图章的很好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.