如何限制同一用户名同时登陆

这个问题我的办法是,用户有个活跃时间间隔问题。超过这个活跃时间间隔的则可以认为是离线,后者可以登陆 ,如果无后者登陆,但并不是说前者就需要重新登陆了。因为他的session还在的。只能是这个时间设置的越小越精确,也是不能做到绝对的。
代码贴出来给楼主参考下。

Function CheckOnline()

DIM IP,rsPrv,Sql,PrvDbState
PrvDbState = False
If DBSTATE = False Then
DbOpen()
PrvDbState = True
End If
Set rsPrv=Server.CreateObject("ADODB.Recordset")
If Session("UserName") = "" then
Sql="select * from [Online] where SessionID='"& Session.Sessionid &"'"
rsPrv.Open Sql,Conn,1,3
If rsPrv.Eof then
rsPrv.AddNew
rsPrv("SessionID") = Session.SessionID
rsPrv("GroupChargeLv") = -1
rsPrv("LastActTime") = Now()
rsPrv("UserIP") = GetIP
rsPrv("OnLineTime") = 0
rsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")
Else
rsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")
rsPrv("OnLineTime") = rsPrv("OnLineTime") + DateDiff("n",rsPrv("LastActTime"),Now())
rsPrv("LastActTime") = Now()
End If
rsPrv.Update
rsPrv.Close()
'response.Write "notlogin"
Else
'response.Write "logined"
Sql="select * from [Online] where UserName='"& Session("UserName") &"'"
rsPrv.Open sql,Conn,1,3
If rsPrv.Eof then
rsPrv.AddNew
rsPrv("SessionID") = Session.SessionID
rsPrv("UserName") = Session("UserName")
rsPrv("GroupChargeLv") = Session("GroupChargeLv")
rsPrv("LastActTime") = Now()
rsPrv("OnLineTime") = 0
rsPrv("UserIP")= GetIP
rsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")
Else
If rsPrv("SessionID") <> Session.SessionID And Application("LoginSet")(1) = False Then
InfoTo "LoginOut.asp","该帐户已在其他地方登陆,网站设置1个ID只能有1个登陆\n你可以稍候尝试登陆。"
Response.End()
End If
rsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")
rsPrv("OnLineTime") = rsPrv("OnLineTime") + DateDiff("n",rsPrv("LastActTime"),Now())
rsPrv("LastActTime")=Now()
End If
rsPrv.Update
rsPrv.Close()
End If
Set rsPrv = Nothing

If DateDiff("s",Application("OnLineLastDelete"),Now()) > Int(Application("DELETEONLINEDIFF")) Then
Application.Lock()
Application("OnLineLastDelete") = now
Application.UnLock()
Conn.ExeCute("delete from [Online] where datedIff('s',LastActTime,Now())>"& Int(Application("CHECKONLINEDIFF") &"")) '删除x秒没有活动的访客
End If

If PrvDbState = True Then DbClose()

End Function

(0)

相关推荐

  • 如何限制同一用户名同时登陆

    这个问题我的办法是,用户有个活跃时间间隔问题.超过这个活跃时间间隔的则可以认为是离线,后者可以登陆 ,如果无后者登陆,但并不是说前者就需要重新登陆了.因为他的session还在的.只能是这个时间设置的越小越精确,也是不能做到绝对的.代码贴出来给楼主参考下.Function CheckOnline() DIM IP,rsPrv,Sql,PrvDbState PrvDbState = False If DBSTATE = False Then DbOpen() PrvDbState = True E

  • JAVA简单链接Oracle数据库 注册和登陆功能的实现代码

    复制代码 代码如下: //User 用户的基本信息,也是USERINFO表中的3个列package 登陆判断; public class User { private String name;  private String loginname;  private String loginpsw;  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;

  • WAMPserver配置方法(允许外部访问、phpmyadmin设置为输入用户名密码才可登录等)

    对于很多不熟悉PHP环境安装的朋友来说,用集成环境可以更快的上手,更方便的搭建PHP的运行环境,但是,WAMP的集成环境仅仅是将底层基础工作做好了,有些个别关键的配置操作并没有集成到环境安装中,所以给大家带来不少麻烦,看到搜索引擎中很多朋友都在问为什么安装好WAMP后,只能本地访问?局域网内禁止访问?或者为什么本地数据库PHPMYADMIN为什么也不能在外部局域网内访问呢?如何设置Mysql必须输入用户名和密码而不是直接登录进去呢? 下面根据自己的亲身实践,说说WAMP配置的整个过程. 1.下载

  • django实现用户登陆功能详解

    简介: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 . Django采用了MVC的软件设计模式,即模型M,视图V和控制器C. 用户名密码登陆实现: 在apps.users下找到views.py文件: 以下代码重写了authenticate()

  • SpringSceurity实现短信验证码登陆

    一.短信登录验证机制原理分析 了解短信验证码的登陆机制之前,我们首先是要了解用户账号密码登陆的机制是如何的,我们来简要分析一下Spring Security是如何验证基于用户名和密码登录方式的, 分析完毕之后,再一起思考如何将短信登录验证方式集成到Spring Security中. 1.账号密码登陆的流程 一般账号密码登陆都有附带 图形验证码 和 记住我功能 ,那么它的大致流程是这样的. 1. 用户在输入用户名,账号.图片验证码后点击登陆.那么对于springSceurity首先会进入短信验证码

  • Token登陆验证机制的原理及实现

    session简介 做过Web开发的程序员应该对Session都比较熟悉,Session是一块保存在服务器端的内存空间,一般用于保存用户的会话信息. 用户通过用户名和密码登陆成功之后,服务器端程序会在服务器端开辟一块Session内存空间并将用户的信息存入这块空间,同时服务器会在cookie中写入一个Session_id的值,这个值用于标识这个内存空间. 下次用户再来访问的话会带着这个cookie中的session_id,服务器拿着这个id去寻找对应的session,如果session中已经有了

  • springboot集成shiro自定义登陆过滤器方法

    目录 前言 自定义UsernamePasswordAuthenticationFilter 覆盖默认的FormAuthenticationFilter 完整UsernamePasswordAuthenticationFilter代码 前言 在上一篇博客springboot集成shiro权限管理简单实现中,用户在登录的过程中,有以下几个问题: 用户在没有登陆的情况下,访问需要权限的接口,服务器自动跳转到登陆页面,前端无法控制: 用户在登录成功后,服务器自动跳转到成功页,前端无法控制: 用户在登录失

  • DOS 命令字典

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H: net use h: \\ip\c$ 登陆后映射对方C:到本地为H: net use \\ip\ipc$ /d

  • DOS命令字典2第1/2页

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H: net use h: \\ip\c$ 登陆后映射对方C:到本地为H: net use \\ip\ipc$ /d

  • windows XP 的命令大全

    打开C:\Documents and Settings\XXX(当前登录Windows XP的用户名).. 打开Windows XP所在的盘符下的Documents and Settings文件夹... 打开"我的电脑"选项. accwiz.exe 辅助工具向导 actmovie.exe 直接显示安装工具append.exe 允许程序打开制定目录中的数据arp.exe 显示和更改计算机的IP与硬件物理地址的对应列表at.exe 计划运行任务 atmadm.exe ATM调用管理器统计

随机推荐