asp禁止规定时间内重复登录,否则强制退出
asp禁止规定时间内重复登录,否则强制退出。在application中设置了一个数组,记住了每一位在线的会员,,我可以通过判断每位登陆的用户名去数组里找是否存在,以此让会员不能重复登陆,
使用了Application全局变量
如下:
--------------------
设:Session.Timeout = 2
----------------------
login.asp
----------------------
vb 代码
- <%
- if application("User"&UserLoginID"")="yes" and (Now() - Application("LoginInTime"&session("cndkzxUserID")""))*100000 + 0 < 120 then
-
response.write
"<SCRIPT language=JavaScript>alert('用户已经登陆!');" -
response.write
"javascript:history.go(-1)</SCRIPT>" -
response.end
- else
- Session("cndkzxUserFlag") = True
- Session("cndkzxUserID") = rs("id")
- Session("cndkzxUserType") = Rs("UserType")
- Session("LastInTime") = Rs("LastInTime")
- AppLication.Lock
- Application("User"&Session("cndkzxUserID")"") = "yes"
- Application("LoginInTime"&UserLingID"") = Now()
- Application.UnLock
- end if
- >
----------------------
logout.asp
----------------------
vb 代码
- <%
- 'Application.Contents.RemoveAll()
- Application("User"&Session("cndkzxUserID")"") = "No"
- Session("cndkzxUserType") = ""
- Session("cndkzxUserID") = ""
- Session("cndkzxUserFlag") = False
- response.Redirect("index.asp")
- >
注:其中的120可以换成想要的时间值!
但是,在论坛中使用application是不明智的,论坛在线人数可以高达成百上千,这样严重消耗了服务器的资源,由于论坛不是定时刷新所以使用数据库查询方法比较好!
当然,也可能通过IP来检查,IP一致则允许登陆,IP不一致则禁止登陆。这种方法比较简单,适合要求不那么高的程序!