如何在sql server和c#桌面应用程序断电时保留登录标志
本文关键字:断电 应用程序 保留 标志 登录 桌面 sql server | 更新日期: 2023-09-27 18:01:32
我有以下场景:一个带有用户登录表的数据库。一个c#桌面应用程序。登录时,我将数据库中用户的登录标志设为true用户注销或退出应用程序时,我将该标志改回false。这个工作很完美,但是当电源故障发生或有人只是杀死应用程序进程时,标志仍然为真,因此不允许再次登录,并显示消息"您已经登录"。我该如何处理呢?
@ SST的mike是对的,但是由于你的某些原因,
您可以执行以下操作
- 在你的[Login]标志上添加另一列,说用户登录时的DateTimeOfLogin值
- 在您的应用程序端,添加一个函数,定期(例如每10秒或根据您的喜好)更新DateTimeOfLogin列(为了获得最佳性能,在此使用线程)
当用户尝试重新登录,[Login]标志为真,DateTimeOfLogin值之间的差异超过10秒,那么这意味着你的应用程序被终止或未正确关闭或电源故障已经发生
不需要标记。如果用户有权访问表,使应用程序可以读取标志,那么他们必须登录!
数据库服务器将为您管理连接。您的应用程序将提供适当的连接字符串,您的安全策略将需要(或不需要)用户名、密码等。当您将数据库作为数据源添加到项目中时,Visual Studio会填充良好的工作代码来处理所有这些问题。
在桌面应用程序的单个会话运行期间,与服务器的连接可能被建立和断开多次。只要让框架为你处理它:保持简单。
如果你需要信息在用户的桌面应用程序之外可用(例如数据库的其他用户),那么你需要在数据库端实现规则,而不是在客户端代码中。