在我的 SQL Server 数据库中,我有一个包含用户的表。这个表有一个名为logged_on的列,它有点,是真还是假。当有人登录时,该列将是 true,否则为 false。如果有人在使用我的 wpf 应用程序时发生了某些事情,例如电源消失并且应用程序无法注销用户,此列将为真,用户将无法再次登录,因为应用程序会告诉该用户他已经登录了。我能做些什么来避免这种情况吗?在服务器端还是在应用程序中?
任何建议表示赞赏:)
在我的 SQL Server 数据库中,我有一个包含用户的表。这个表有一个名为logged_on的列,它有点,是真还是假。当有人登录时,该列将是 true,否则为 false。如果有人在使用我的 wpf 应用程序时发生了某些事情,例如电源消失并且应用程序无法注销用户,此列将为真,用户将无法再次登录,因为应用程序会告诉该用户他已经登录了。我能做些什么来避免这种情况吗?在服务器端还是在应用程序中?
任何建议表示赞赏:)
我认为您需要一个“LastActive”日期时间戳。然后运行一个计划的作业,上面写着“如果您已经有 X 分钟不活动,请更改 logged_on 标志的状态”。
您是否试图确保同时只能激活一个登录?那是最后的游戏吗?
听起来您需要稍微改变方法,也许跟踪上次交互日期/时间(每次 WPF 应用程序调用 SQL)并强制执行会话超时限制。除了 *logged_on* 位字段外,您还可以使用该 DateTime 自动注销几分钟内未与服务器交互的任何人(如果 DateTime 太陈旧,则始终将 *logged_on* 切换为 false)。
在用户再次登录而没有先注销的情况下,您不能丢弃旧登录是否有一个重要原因?