注册 登录
编程论坛 ASP技术论坛

怎样限制一个帐号登陆以后,别人不能用同样的帐号登陆?

tyang 发布于 2005-10-29 21:41, 1571 次点击
会员登录有个用户名:aa 密码:123 如果现在我用这个帐号登陆了,这个时候,别人如果也要用这个帐号登陆则提示:"帐号正在使用" 这个状态.
我想了很久,觉得应该是帐号上锁的问题.但不知道应该怎样控制.望了解这方面的前辈指点指点!

[此贴子已经被作者于2005-10-29 21:42:05编辑过]

19 回复
#2
Knocker2005-10-29 22:14
这个还不简单?登陆核对时再多核对一个bool型的变量不就成了?别问我怎么写,俺不会
#3
dreame2005-10-29 22:44

也可以用session

#4
盖茨他爹2005-10-29 22:59
以下是引用knocker在2005-10-29 22:14:03的发言:
这个还不简单?登陆核对时再多核对一个bool型的变量不就成了?别问我怎么写,俺不会

没有这么简单滴

#5
rainic2005-10-30 10:01

那应该怎么做?

#6
islet2005-10-30 10:33
用Application
#7
rainic2005-10-30 10:39
用Application做的话,服务器会不会很累?
有没有别的方法??
#8
islet2005-10-30 10:52
你有几个会员同时在线

再说可以用一个Application变量记载所有的登陆的用户用特殊字符隔开 然后看要登陆的会员名字在不在里面 用instr来判断就行了

#9
rainic2005-10-30 10:56
哦~~对啊!!!学习ING
#10
Knocker2005-10-30 11:42
以下是引用盖茨他爹在2005-10-29 22:59:10的发言:

没有这么简单滴

为什么不行?你知道我是不懂ASP的,我觉得我的方法很不错的。

#11
islet2005-10-30 13:46
[QUOTE]登陆核对时再多核对一个bool型的变量不就成了[/QUOTE]

行倒是行 就是还要在退出和登陆时存储数据库
#12
islet2005-10-30 13:54
用Global.asax
假如用户之间要用!隔开 在注册时限制!
用户aaa登陆时存储Application(用户)=Application(用户)&"aaa"&"!"
用户离开时存储Application(用户)=replace(Application(用户),"aaa"&"!","")

我没做过这功能 我感觉这样应该能行
#13
盖茨他爹2005-10-30 14:04
如果用户仅仅关闭了IE而没有按退出按纽呢?
这又讨论到纪录在线用户的问题上去了
#14
islet2005-10-30 14:12
用Global.asax
应该能行 关闭IE也行没问题
#15
icecool2005-10-30 14:19

在用户关闭IE事件时改写Application可以吗?

#16
盖茨他爹2005-10-30 14:20

好象关闭IE的时候是不向服务器发送任何信息的

#17
islet2005-10-30 14:22
那判断再现人数怎么做?
#18
islet2005-10-30 14:23
是在线人数
#19
islet2005-10-30 14:27
一般学ASP的都知道的问题

[转贴]

从逻辑上说,这个问题很简单。那就是来一个用户,在线人数加一,离开一个用户,在线人数减一。

现在首先需要解决的问题是如何知道用户的进入和增加。

在asp中,用户进入访问页面的时候,会触发一个事情,事件名称是session_onstart,在离开的时候(准确地说,是在一定的时间内没有访问页面数据,缺省的时间是20分钟),也会触发一个事件,事件的名称是session_onend。我们可以在global.asa文件中定义这两个事件所执行的操作。

接下来我们需要考虑的问题是,如何让这个变量对于所有的人都是一样的(废话,不一样那一定不准确)。因此,我们首先想到的就是把在线人数放在一个application变量里。

到这里,我们需要解决的问题都已经解决了,下面来看看代码:
sub session_onstart
application.lock
application("onlineusers")=application("onlineusers")+1
application.unlock
end sub

sub session_onend
application.lock
application("onlineusers")=application("onlineusers")-1
application.unlock
end sub
在这里有一个小小的问题,那就是,如果用户是第一个访问者,由于在线人数变量没有初始化,所以会出现错误的提示。要想解决这个问题,我们需要加上初始化该变量的代码:
if isempty(application("onlineusers")) then
application("onlineusers")=1
end if
修改后的代码如下:
sub session_onstart
application.lock
if isempty(application("onlineusers")) then
application("onlineusers")=1
else
application("onlineusers")=application("onlineusers")+1
end if
application.unlock
end sub

sub session_onend
application.lock
application("onlineusers")=application("onlineusers")-1
application.unlock
end sub
把上面的代码保存为global.asa,保存在web应用程序根目录下(必须在根目录下),然后在页面的合适位置中使用<%=application("onlineusers")%>就可以了。
#20
tanqisy2012-11-24 14:12
回复 8楼 islet
请问可以讲的再明白点吗?
1121561493我的QQ
或者留个你的QQ 我加你
1