防止多个相同的用户登录一个桌面应用程序

本文关键字:一个 桌面 登录 应用程序 用户 | 更新日期: 2023-09-27 17:49:36

我正在开发一个多用户桌面应用程序。我需要找出一种方法,只允许一个用户登录在每个用户名的时间。基本上,John不能从PC-A登录到应用程序,然后再运行到PC-B并登录。我想到的是设置一个位标志,表明用户已经登录,当从另一个位置进行尝试时,它会建议用户当前的用户名已经登录。这将重复,直到PC-A上的John退出系统或手动注销。唯一的问题是,如果应用程序崩溃,则不会调用注销方法。建议吗?

防止多个相同的用户登录一个桌面应用程序

如果您既不能优雅地退出应用程序,也不能至少捕获所有异常并适当地处理,我认为唯一的替代方法是使用会话方法。基本上,当每个用户登录时,将建立一个新的会话,并且将根据该会话id对任何未来的调用进行验证。

通过这样做,您可以允许用户在他们试图登录其他地方时终止现有的/打开的会话。如果他们试图从PC B登录,并且已经从PC A登录-您只需将其放在提示框中,如果他们选择从PC B继续,则PC A上的会话将被停用。即使有人在PC A上积极使用应用程序,他们发出的下一个服务调用也应该被拒绝,因为会话已关闭。

查看MySQL的GET_LOCK()和RELEASE_LOCK()函数