怎样才能一个账号同一时间内最多只有一个用户使用?

时间:2022-06-07 14:39:21
各位高手,你们好:
  小弟想问高手一个问题:
  我现在正在用ASP做一个登录系统,但遇上了一个小小的问题。我怎样才能够限定一个账号同一时间内最多只有一个用户使用啊?

20 个解决方案

#1


在数据库里面记录登陆时间,并做登陆标识。 页面上定时刷新看session有没有timeout ,timeout了就把登陆标识去掉。timeout时间设定的合理一点! 不过这样解决也不完美!

#2


在数据库中加一个标志字段,登陆后配1,然后判断是1还是0来判断用户是否登陆。

#3


做个临时表,登录后把用户名写进去。退出时删除。

登录时先检验这个临时表有没有自己的用户名。

但是这样有一个问题。就是用户直接关闭走人。

所以就需要包含一个异常退出的处理。把自己的用户名在临时表里删除。

#4


登陆时候在数据库中打上标记。。。。。。。。。。。

#5


在登陆表加一个字段,login(name,password,attri)

其中attri默认值为0,当一个用户登陆检验通过后,让attri为1

#6


session 配合数据库记录登陆用户

#7


搜以前的帖子有这样的问题!

一般就是登陆以后将登陆信息写入表里面

登陆的时候判断表里面是否有这个人的信息,有就不能登陆

——————————————————————————————————
www.91asp.cn
有时间到这里找资料找书籍,你会发现asp以及.net很容易!
前提是你努力学习!

#8


综合vivisogood(新人类)和lxqlogo0(群子)的意见就可发解决掉你的问题了

#9


这还不简单,你在数据库里做一个记号,不就可以了

#10


这种情况都是登陆时在数据库写入一个标志!

#11


记录用户在线情况

#12


统计用户的IP
如果是不同的IP则表明已经有用户使用不同的机器登陆了

#13


搜我以前的帖子,至少回答过10次以上了.

这个问题,比较的难.

主要问题是,非正常退出时,下次合法用户也不能登陆.
解决方法需要用到包括2级密码在内的一系列技巧...

#14


期待中

#15


SessionID属性
  该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。

当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",
同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登
录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这
样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者
访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。

#16


就是这个原理了!做标记!

#17


记录到APPLICATION集合里面,登录时验证就行了

#18


做个activetable表,放登陆用户的ID信息!然后比较就可以实现!如果有非正常退出情况,就设个时间不段检测对比!最好设得短些!这样就是非正常退出也可以在一定程度上解接问题!(断电之类)。如果要做到完美,我想在不断检测客户端IP变化情况!(情况也是有点复杂,)同个用户名称检测session情况和activetable临时表情况还有配合IP检测(三个方法一起来)应该比较完美了吧!说是说了,我还没这样做过,最多就是两种情况都使用在一起!大家可以试试看看!
有需要者加俺MSN:loadingthink@hotmail.com聊天免加!

#19


浏览器有没有unload事件的啊?俺是菜鸟

#20


根据登陆时间,IP判断比较好,可以参考投票程序啊

#1


在数据库里面记录登陆时间,并做登陆标识。 页面上定时刷新看session有没有timeout ,timeout了就把登陆标识去掉。timeout时间设定的合理一点! 不过这样解决也不完美!

#2


在数据库中加一个标志字段,登陆后配1,然后判断是1还是0来判断用户是否登陆。

#3


做个临时表,登录后把用户名写进去。退出时删除。

登录时先检验这个临时表有没有自己的用户名。

但是这样有一个问题。就是用户直接关闭走人。

所以就需要包含一个异常退出的处理。把自己的用户名在临时表里删除。

#4


登陆时候在数据库中打上标记。。。。。。。。。。。

#5


在登陆表加一个字段,login(name,password,attri)

其中attri默认值为0,当一个用户登陆检验通过后,让attri为1

#6


session 配合数据库记录登陆用户

#7


搜以前的帖子有这样的问题!

一般就是登陆以后将登陆信息写入表里面

登陆的时候判断表里面是否有这个人的信息,有就不能登陆

——————————————————————————————————
www.91asp.cn
有时间到这里找资料找书籍,你会发现asp以及.net很容易!
前提是你努力学习!

#8


综合vivisogood(新人类)和lxqlogo0(群子)的意见就可发解决掉你的问题了

#9


这还不简单,你在数据库里做一个记号,不就可以了

#10


这种情况都是登陆时在数据库写入一个标志!

#11


记录用户在线情况

#12


统计用户的IP
如果是不同的IP则表明已经有用户使用不同的机器登陆了

#13


搜我以前的帖子,至少回答过10次以上了.

这个问题,比较的难.

主要问题是,非正常退出时,下次合法用户也不能登陆.
解决方法需要用到包括2级密码在内的一系列技巧...

#14


期待中

#15


SessionID属性
  该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。

当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",
同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登
录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这
样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者
访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。

#16


就是这个原理了!做标记!

#17


记录到APPLICATION集合里面,登录时验证就行了

#18


做个activetable表,放登陆用户的ID信息!然后比较就可以实现!如果有非正常退出情况,就设个时间不段检测对比!最好设得短些!这样就是非正常退出也可以在一定程度上解接问题!(断电之类)。如果要做到完美,我想在不断检测客户端IP变化情况!(情况也是有点复杂,)同个用户名称检测session情况和activetable临时表情况还有配合IP检测(三个方法一起来)应该比较完美了吧!说是说了,我还没这样做过,最多就是两种情况都使用在一起!大家可以试试看看!
有需要者加俺MSN:loadingthink@hotmail.com聊天免加!

#19


浏览器有没有unload事件的啊?俺是菜鸟

#20


根据登陆时间,IP判断比较好,可以参考投票程序啊

#21