限制重复登录问题

在测试的时候遇到了限制同一用户重复登录的问题。下面说说我的解决思路。

思路一:声明一个静态变量,用于存放最新一次的登录账户名,在新用户登录的时候与之进行对比,如果相同那么就说明已经登录。

分析:这个思路的局限性很大,从理论上说,这个变量只能存放最新登录的用户名,显然不能满足系统的要求。

思路二:声明一个静态的数组,存放已经登录的用户名,在新用户登陆的时候,判断这个数组内是否有相同元素。

分析:这种思路虽然比思路一改进了些,但是局限性还是很大,不能满足需求。

思路三:在online_info表中记录已登录的用户名。

分析:这个方法虽然可行,但是,如果登陆者的身份是系统管理员,如果也加到目前登录人数,这样就不能这却反映上机消费的学生人数。所以还应改进一些。

思路四:在user_info表中记录已登录用户的登录状态。添加一个flag字段,如果成功登录,那么给这个字段赋值为1,用户退出时字段赋值为0。

分析:这么一来,基本上满足了系统的需求,下面是部分与之相关的代码。但是这里还应该提到一个健壮处理:如果非正常退出登录,比如电脑突然死机,突然停电等等。应该增加这些事件的状态处理,以便保证user_info表中flag字段的正确赋值。

            '检测在用户信息表中是否已经登录
              Dim txtSQLA As String
            Dim MsgTextA As String
            Dim RstA As ADODB.Recordset
            txtSQLA = "select * from user_info where userid='" & Trim(txtUserName.Text) & "'"
            Set RstA = ExecuteSQL(txtSQLA, MsgTextA)
            If RstA!FLag = 1 Then
                MsgBox "此用户已经登录,不能重复登录", vbOKOnly + vbExclamation, "提示"
                txtUserName.Text = ""
                txtPassWord.Text = ""
                txtUserName.SetFocus
                RstA.Close
                Exit Sub
            Else
                RstA!FLag = 1
                RstA.Update
                RstA.Close
            End If

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值