以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]请高手们提供一个限制用户登录的思路? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38673) |
-- 作者:智友软件工作室 -- 发布时间:2013/8/4 0:56:00 -- [求助]请高手们提供一个限制用户登录的思路? 用户数据采用远程存储,现在想实现某一个用户名在一台电脑上登录之后,该用户名就不能在本机和其他计算机上再次登录了,直到该用户下线之后其他电脑才能登陆这个用户名呢?请高手们提供个思路?先谢谢了。 |
-- 作者:lsy -- 发布时间:2013/8/4 6:46:00 -- 第一种思路: 用户权限表里,设一逻辑列:是否在线。 默认为False。 用户每次登录,除了检查用户名和密码,还检查是否在线的状态。 是否在线为True,,返回,拒绝登录;反之,正常登录。 每次登录成功,将是否在线更新为True。 每次退出成功,将是否在线更新为False。 缺点:如果程序意外退出,状态会停留在True的状态,用户再也无法正常登录,需管理员人工干预。
第二种思路: 用户权限表里,设一时间列:在线时间。 做个计划: 用户登录后,程序以较短的时间间隔,不断更新在线时间。 用户每次登录,计算,点击确定按钮时的时间,减去在线时间里的时间。 这个差值大于计划规定的时间间隔,说明此前,该用户不在线,正常登录;反之拒绝登录。
缺点:系统开销较大。
|
-- 作者:瞩望星空 -- 发布时间:2013/8/4 22:23:00 -- 本人觉得,用户数量不太大的话,还是第二种方法好。如果系统销太大,就通过延长刷新在线时间的方法来调节。 单位里有一个程序,采用的是第一种方法,在实际使用时,会遇到很大问题。 |
-- 作者:blackzhu -- 发布时间:2013/8/5 7:55:00 -- 2楼的做法 正确. |
-- 作者:智友软件工作室 -- 发布时间:2013/8/5 10:15:00 -- 第一种方法我也想到过,但是就是不知道能否有解决异常退出的办法? 不知道第二种办法是不是确认的最优解决方式?
|
-- 作者:客家阿哥 -- 发布时间:2013/8/5 12:26:00 -- 第一种方法用管理员就去干预一下不就行了! 应该可以两种方法相结合!时间和人工都可以干预,那样时间可以设置长一点,非正常退出的时候,要及时登陆,时间干预又不起作用的时候,实行人工干预!
|