asp禁止规定时间内重复登录,否则强制退出

asp禁止规定时间内重复登录,否则强制退出。在application中设置了一个数组,记住了每一位在线的会员,,我可以通过判断每位登陆的用户名去数组里找是否存在,以此让会员不能重复登陆,   

  使用了Application全局变量  

   

  如下:  

  --------------------  

  设:Session.Timeout   =   2   

  ----------------------

  

login.asp   

----------------------  

vb 代码
 
  1. <%  
  2.  if   application("User"&UserLoginID"")="yes"   and   (Now()   -   Application("LoginInTime"&session("cndkzxUserID")""))*100000   +   0   <   120   then   
  3.  response.write"<SCRIPT   language=JavaScript>alert('用户已经登陆!');"   

  4.  response.write"javascript:history.go(-1)</SCRIPT>"   

  5.  response.end   

  6.  else   
  7.  Session("cndkzxUserFlag")   =   True   
  8.  Session("cndkzxUserID")   =   rs("id")   
  9.  Session("cndkzxUserType")   =   Rs("UserType")   
  10.  Session("LastInTime")   =   Rs("LastInTime")   
  11.  AppLication.Lock   
  12.  Application("User"&Session("cndkzxUserID")"")   =   "yes"   
  13.  Application("LoginInTime"&UserLingID"")   =   Now()   
  14.  Application.UnLock   
  15.  end   if   
  16. >

---------------------- 

  logout.asp  

  ----------------------

vb 代码
 
  1. <%   
  2.  'Application.Contents.RemoveAll()   
  3.  Application("User"&Session("cndkzxUserID")"")   =   "No"   
  4.  Session("cndkzxUserType")   =   ""   
  5.  Session("cndkzxUserID")   =   ""   
  6.  Session("cndkzxUserFlag")   =   False   
  7.  response.Redirect("index.asp")   
  8. >

注:其中的120可以换成想要的时间值!

但是,在论坛中使用application是不明智的,论坛在线人数可以高达成百上千,这样严重消耗了服务器的资源,由于论坛不是定时刷新所以使用数据库查询方法比较好!

当然,也可能通过IP来检查,IP一致则允许登陆,IP不一致则禁止登陆。这种方法比较简单,适合要求不那么高的程序!