Foxtable(狐表)用户栏目专家坐堂 → [分享]限制用户用同一个账户只能登陆1个客户端


  共有11186人关注过本帖树形打印复制链接

主题:[分享]限制用户用同一个账户只能登陆1个客户端

帅哥哟,离线,有人找我吗?
qq121454970
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:880 积分:9011 威望:0 精华:3 注册:2012/4/22 18:06:00
[分享]限制用户用同一个账户只能登陆1个客户端  发帖心情 Post By:2012/7/1 23:06:00 [显示全部帖子]

在用户表中添加一列,名为“最近在线”,该代码只适用自定义用户哦,可以自行修改,必须小于登陆窗口的秒数
在计划管理中增加一个计划
在计划中加入以下代码(计划管理间隔设为10秒),可自行调整
Dim s As String = Date.now()
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Update {Users} Set [最近在线] = '" & s & "'Where [Name]= '" & _UserName & "'"
If cmd.ExecuteNonQuery = 1 Then
End If

在用户登录窗口中的提交按钮中代码改成,有点事,不提取出来了,不好意思哦,要的话会提出来的
Dim UserName As String = e.Form.Controls("UserName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr1 As DataRow
cmd.C
If UserName = ""  Then
    Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
Cmd.CommandText = "Select * From {Users} Where [Name] = '" & UserName & "'"
If cmd.ExecuteScalar() = 0 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("您输入的用户名或者密码错误,请重新输入!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select * From {Users} Where [Name] = '" & UserName & "'"
dt = cmd.ExecuteReader
dr1 = dt.DataRows(0)
If e.Form.Controls("PassWord").Value = dr1("Password") Then
    If dt.DataRows.Count = 1 Then
        Dim d1 As Date = dt.DataRows(0)("最近在线")
        Dim d2 As Date = Date.now()
        Dim t As TimeSpan = d2 - d1
        If t.TotalSeconds >= 30 Then ‘ 30是秒数,就是用户在30秒没有报道的话,会被系统认为退出,计划管理是10秒执行一次,具体自己修改即可
            _UserName = UserName
            _UserGroup = dr1("Group")
            Dim s As String = e.Form.Controls("UserName").Value '这段代码是用来保存用户名的
            FileSys.WriteAllText("c:\UserName.txt", s, False, Encoding.Default)
            e.Form.Close
        Else
            MessageBox.Show("此用户已登录!","提示",MessageBoxButtons.OK)
        End If
    End If
Else
    Messagebox.show("您输入的用户名或者密码错误,请重新输入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If


一直劳烦大家帮我,这个就算我对大家一小点的心意吧,如果有不对的地方,还请指点哦,小弟才疏学浅,,呵呵
[此贴子已经被作者于2012-7-1 23:10:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
qq121454970
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:880 积分:9011 威望:0 精华:3 注册:2012/4/22 18:06:00
  发帖心情 Post By:2013/4/28 9:28:00 [显示全部帖子]

以下是引用blackzhu在2013-4-28 7:57:00的发言:
貌似加个逻辑列判断下就可以了

异常退出的话,就不方便了呢


 回到顶部
帅哥哟,离线,有人找我吗?
qq121454970
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:880 积分:9011 威望:0 精华:3 注册:2012/4/22 18:06:00
  发帖心情 Post By:2013/4/28 15:21:00 [显示全部帖子]

以下是引用blackzhu在2013-4-28 9:39:00的发言:
呵呵 这个倒是的,但是有超级管理员的呀.

超级管理员管这事,还不如直接在客户端完成呢图片点击可在新窗口打开查看


 回到顶部