日期:2014-05-18  浏览次数:20805 次

怎么解决“异常退出系统后,该用户已登录”
我在oarcle里建了一个表,用于记载用户的登录信息,里面有“用户名”、“是否已登录”、“密码”、“权限”字段,当用户登录时,“是否已登录”字段就会改为“是”,当用户正常退出时,就改为“否”。但是当程序错误时,就不得不异常退出,这时候,就无法触发“退出”时间(窗体关闭时激发的事件),这样该用户退出后,此用户对应的“是否已登录”字段仍然是“是”!这样此用户下次就无法登录了,除非再到数据库里修改表。但这样很不合理,不知哪位大侠有好多建议!!!!

------解决方案--------------------
有个比较粗糙的方法, 你在"我在oarcle里建了一个表"里加一个时间字段,
一般在用户在线时,会有一个计时器每30秒对该字段进行更新, 异常退出后,你再次登录,发现该字段时间超过了30秒 就可以说明客户端是由于异常导致的非正常退出.
------解决方案--------------------
一种方法是捕捉异常
还有一种就是程序运行起来时判断一下上次是否正常退出,可以用一个flag来表示
------解决方案--------------------
通信模式改为如果服务端在某个时间段时未收到客户端的请求,则默认为掉线,一般系统设为15分钟左右。
也就是说就算未掉钱,15分钟未做任何操作,接下来也要先登录系统才可以继续操作。
------解决方案--------------------
表里再加个登陆的具体时间,程序登陆时检查上次登陆时间至此多长时间来确定是否让其登陆。(当然也少不了你的登陆状态字段,加起来判断会更合理些。)