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