怎么控制不能使以一个用户身份多次登录系统??? 我现在做了小管理系统,其中由于我用到了临时表,起的临时表名为表名+用户ID,然后在该用户登录之后,我就把用户表里的登录判断字段改为TRUE,退出再改回False。但是我发现,如果程序发生异常退出,则就无法把判断字段改回False,那么改用户下次就无法再登录系统,因为他已经在使用中了。我改怎么处理这个问题???谢谢,在线等候,及时结分。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题我做过 我说说我的想法 你参考一下登陆的时候写如一个文件 ini或者text 设标志flag=1正常退出改为 2 你登陆的时候检查一下 如果为1说明没有正常退出你就强行登陆 使用全局变量行不?初始化为FALSE,如果用户登录为TRUE,退出为FALSE,程序发生异常退出重进入自动为FALSE。 TO:楼主,就算你的程序是异常退出,你在你的程序的destroy事件中还是来的及写修改状态的事件的吧 TO sunny518(灵犀) : 谢谢你的想法。不过,我想,由于我们的系统是多用户的,在局域网内使用,那么我在本地机上的ini配置文件似乎不能起到控制的作用啊。呵呵,还有其它方法吗?TO hjb8000(北极熊): 不是很明白你的意思,如果我使用全局变量的话,那我也只在改程序中有效,对其他用户的登录似乎不能起什么作用啊。 TO Drate(鸟窝里的虫) : 我刚试了,不行啊。我原来是在Mainform的OnClose事件中更改的。还能有什么方法吗? 用try...except进行处理试试!!! 服务器启动或退出的时候应该对这个临时表名为表名+用户ID进行强行设所有标志为false;服务器运行的时候你可以用ini 写一个拥护名 和一个标志为什么呢 用户不可能换来换去的换机子吧 肯定他异常退出还是会使用这台机器上你就在一台机子上 如果他要换机子的话 那么就叫他先正常推出我上次做了一个机房ic上机管理系统就是这样实现的 我覺得用ini會比較好一點. 用一个StringList或者ThreadList维护已登录用户ID列表不可以吗,为什么非要写下来呢? 笨笨 你想一下 用户按重新启动或非法操作会有什么后果 stinglist显示他再线 他怎么进去呀我的方法是最明智的 我也想了很久这个问题 既要防止用户多次登陆又要能够识别用户是否非法操作了 临时表这样设计:用户ID,机器ID用户登录时记下用户的ID和机器ID(可以是机器名或IP)当某台机器上的系统重启时或关闭时将临时表对应机器ID的用户名清空就行了,如果非法中断退出,只要重启系统就行了。还可以在服务器端增加清除所有客户机登录用户ID的功能,统一管理。 这个问题我以前做过,我告诉我以前的做法,我做得也是CS结构的,在局域网中使用,你可以将该用户名和该机器的IP联合一起用,如果异常退出的话,下次登陆必须在同一个IP下登陆,否则就说明该用户已经在使用 TO fly518(我要飞): 我想你的这种做法只能控制一台机子的登录问题。可能你对我的意思不是很明白。 一般一个系统都有一个系统管理员,你叫系统管理员把你那个临时表对应的ID设为False就行了。 Delphi WebService 难带对C#的Binary序列化后的字节数组 就一点没有办法吗 再真的心又如何! EDIT1.TEXT从用户接受的内容如何放进ARR 请问怎样实现在DBgrid表中显示指定格式的数据? treeview,急请各位帮忙 鼠标消息,进入窗体 在安装程序过程中如何判断新数据库和又安装程序的数据库是否相同(打包(inno stup)+数据库(firebird)) 怎么在自己的机器上做FTP的软件呢 请高手推荐delphi书藉 快快快,程序员眼中的流行工具软件,评论就有分,写的越好..... 有外键表的修改 怎样取dbgrid中的值.不要看题目简单, 解决此题300分
登陆的时候写如一个文件 ini或者text 设标志flag=1
正常退出改为 2 你登陆的时候检查一下 如果为1说明没有正常退出
你就强行登陆
谢谢你的想法。不过,我想,由于我们的系统是多用户的,在局域网内使用,那么我在本地机上的ini配置文件似乎不能起到控制的作用啊。呵呵,还有其它方法吗?
TO hjb8000(北极熊):
不是很明白你的意思,如果我使用全局变量的话,那我也只在改程序中有效,对其他用户的登录似乎不能起什么作用啊。
我刚试了,不行啊。我原来是在Mainform的OnClose事件中更改的。还能有什么方法吗?
服务器启动或退出的时候应该对这个临时表名为表名+用户ID进行强行设所有标志为false;
服务器运行的时候你可以用ini 写一个拥护名 和一个标志
为什么呢 用户不可能换来换去的换机子吧 肯定他异常退出还是会使用这台机器上
你就在一台机子上 如果他要换机子的话 那么就叫他先正常推出
我上次做了一个机房ic上机管理系统就是这样实现的
我的方法是最明智的 我也想了很久这个问题 既要防止用户多次登陆
又要能够识别用户是否非法操作了
用户登录时记下用户的ID和机器ID(可以是机器名或IP)
当某台机器上的系统重启时或关闭时将临时表对应机器ID的用户名清空就行了,
如果非法中断退出,只要重启系统就行了。
还可以在服务器端增加清除所有客户机登录用户ID的功能,统一管理。
我想你的这种做法只能控制一台机子的登录问题。可能你对我的意思不是很明白。