3

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

4

2 回答 2

2

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

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

于 2012-12-27T18:19:33.367 回答
1

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

于 2012-12-27T18:19:30.050 回答