用户登录控制问题,大家帮我!!!

chujiangguang 2004-03-04 03:46:10
我要控制我的系统中一个用户在同一时间只能登录一次(即不能同时有两个相同的用户在操作系统),我现在是的方案是:当此用户登录时,在用户表中做一'已登录'标识,当此用户退出系统时,把用户表中'已登录'标识改为‘未登录‘,但当用户不是正常退出系统时,就不能及时把用户表中'已登录'标识改为‘未登录‘,请问各位高手还有没有其它好的方法???
...全文
259 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
31737951 2004-07-23
  • 打赏
  • 举报
回复
yeqiufeng(叶秋枫) ( ) 信誉:100
-------------------
这个主意好啊
eddiezhuo 2004-07-23
  • 打赏
  • 举报
回复
up
shaoni 2004-07-21
  • 打赏
  • 举报
回复
你看看可不可以在关闭时处发事件把‘已登陆’改‘未登陆’
treesoft 2004-07-21
  • 打赏
  • 举报
回复
yeqiufeng(叶秋枫) 的想法不错,支持!
renwanly 2004-07-21
  • 打赏
  • 举报
回复
还没有解决呀?
我已经成功实现过了,通过网卡地址和进程号将应用程序和用户名写入master数据库的sysprocess表中,登陆时到表里找一下有没有同一应用程序同一用户名的程序已经登陆,如果有的话就退出,如果没有则允许登陆。
我当时的难点就是得到网卡地址和进程号两件小事,不过半个小时就解决了:D
freedom2001 2004-07-21
  • 打赏
  • 举报
回复
这么长时间的帖子竟然还能捞出来,真行。
cdmhua 2004-07-21
  • 打赏
  • 举报
回复
每一个用户不是都有自已的密码吗
houtl 2004-07-21
  • 打赏
  • 举报
回复
通过sock,记录下登陆的ip,等后一个人登陆的时候,通讯一下,
cxwsoftware 2004-07-20
  • 打赏
  • 举报
回复
关注中!
「已注销」 2004-07-20
  • 打赏
  • 举报
回复


大家不妨换个思维 改为 后人登录踢前人好了 方法不同 效果一样

后人登录直接把登录ID改成自己的

程序每隔N秒判断一次登录ID 如果发现被人篡改了 那么自动出局……

也就是“您的QQ已经在别的地方登录了 你休息一下吧”

@_@
Terry79 2004-07-20
  • 打赏
  • 举报
回复
我都有一个和你这个差不多类似的问题,都想知道怎么解决。
10975037 2004-07-20
  • 打赏
  • 举报
回复
楼主的意思我明白,是不能同时有两个相同的用户在操作你的软件系统。就想qq 一样的。这个还真的没什么好的办法处理异常情况,帮你收集资料中
renwanly 2004-07-08
  • 打赏
  • 举报
回复
嚯嚯,楼上干脆就COPY过来了
不过偶看了一下这个表,里面记录的是网卡号和进程号才能唯一确定一个应用,偶这里已经做过这个东东了:D
楼猪大概要自己找东东了
cdmhua 2004-07-08
  • 打赏
  • 举报
回复
这个问题很弱呀,每一个用户都有密码,那别人怎么登呀
用不着像你想的这么费事吧
Pegasuscc 2004-07-04
  • 打赏
  • 举报
回复
T_SQL(即SYBASE,SQLSERVER)解决办法如下:
在MASTER数据库里有一张名为sysprocesses的表,里面记录了当前登录用户的信息,不会用的话,去参照MASTER里的SP_WHO的存储过程。
我们可以利用这张表,但是在PB里的默认连接名是客户端机器名,所以要改掉,连接数据库成功后加上下面这一段:
disconnect;
sqlca.dbparm="host='"+ls_username+"'"
connect;

ls_username就是你登录的用户名,这回在sysprocesses表的HOSTNAME就是你的登录名了,下面的判断工作就不用我说了吧
damayhis 2004-07-03
  • 打赏
  • 举报
回复
关注
bgtjing 2004-07-02
  • 打赏
  • 举报
回复
登陆界面打开时直接清空登陆标志。
hgxhzzl 2004-07-02
  • 打赏
  • 举报
回复
我有一个很笨的想法,
1,建一个表(l_rybh)用来存贮登录人员的编号
2,建一个进程事件(timr())定时对登录人员的编号进行刷新时间为0.2秒
3,在登录时对表(l_rybh)清除记录,再先等上0.3秒,对现在登录人员编号进行检索,
如果有则提示退出
如果没有则进入
例如
我已登录,进程事件0.2秒进行(如果我的编号不存在则增加我的编号记录)
如果有别人以我的编号进行登录,则先对表(l_rybh)清除记录,这样我的记录没有了,
但再先等上0.3秒后,进程事件将又增加我的编号记录,检索时有则有我的编号记录,
这样别人就不能进入了.
如果我的为非法退出,我重新登录时先对表(l_rybh)清除记录,这样我的记录没有了
但再先等上0.3秒后,检索时有没有我的编号记录,
这样就能进入了.

freedom2001 2004-07-01
  • 打赏
  • 举报
回复
触发器好象不行,象SQL SERVER可以直接使用数据库系统表来控制,其他数据库可能没这个功能。其实这种处理方式要分场合,分情况的。比如你在自己的机器上登陆了,你到别人那办事情,但是有可能有急事需要马上登陆上去看数据或进行某种处理,这时候你就无法登陆,要不就跑回去操作再跑回来,要不然就一个字:哭。主要是看你想怎么用了
Libra_Chen 2004-07-01
  • 打赏
  • 举报
回复
触发器行不?连接断开时?
加载更多回复(1)

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧