gpt4 book ai didi

c# - 防止已经登录的用户登录 C#

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:53 24 4
gpt4 key购买 nike

我有一个桌面 C# 应用程序,多个客户端连接到 SQL 服务器。每个用户都有一个 ID 和密码。我想要的是防止已经登录的用户从另一台计算机登录。

我通过在登录时更新数据库中的字段 'UserLoggedIn'=true 以及当用户注销时将字段更新为 False 来实现它。但是这个方案并不是最优的,如果系统崩溃或者电脑意外关机,数据库中的值会一直是'UserLoggedIn'=True,这个用户将永远无法再次登录系统。

最佳解决方案是什么,并防止已经登录的用户从另一台计算机登录?

最佳答案

代替 true,在数据库中存储时间戳。确保在用户登录时定期更新它。

当他们登录时,如果不是太新则允许他们登录。也就是说:如果您在过去(比如)30 秒内从另一台 PC 上看到了它们,则认为该 session 仍然存在,并拒绝新的登录。

这样,如果他们的其他 PC 崩溃,时间戳将不会更新,最终会过期。

更新频率应该是到期超时的两倍左右。例如,如果您希望 session 在 1 分钟内到期,则应每 30 秒更新一次时间戳。

关于c# - 防止已经登录的用户登录 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com