Foxtable(狐表)用户栏目专家坐堂 → 局域网环境一个用户多处登录问题


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

主题:局域网环境一个用户多处登录问题

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2012/8/9 21:20:00 [显示全部帖子]

建一个登录管理表,包含登录用户、电脑名称、登录地址、登录时间、机器码(如果需要注册才能登录)、异机登录,每次登录都先从表中查找是否有同名登录用户,若无则添加记录,若有(属于不正常退出)且属本机登录,则不添加记录,只修改登录时间,若属异机登录则在异机登录中填写“是”。每次退出、切换用户都删除登录记录。

' 判断同名用户是否已经登录,并作相应处理
Dim HostName As String
HostName=System.Net.Dns.GetHostName '获得本机的机器名
Dim IPAdress As System.Net.IPAddress
IPAdress=System.Net.Dns.GetHostByName(HostName).AddressList.GetValue(0) '获得本机的IP
Dim dt2 As Date
cmd.CommandText = "Select GetDate()"
dt2 = cmd.ExecuteScalar()'服务器的日期和时间
With DataTables("登录管理")
    dr0 = .Find("登录用户= '" & _username & "'") '_Username为自定义登录时的用户名
    ' 已登录的处理
    If dr0 IsNot Nothing Then
        Dim name As String=dr0("电脑名称")
        If name<>hostname Then '异机登录
            Dim IP As String=dr0("登录地址")
            Dim rq As Date=dr0("登录时间")
            MessageBox.Show("该用户已异机登录, 请确认或联系管理员或开发者!" & vbcrlf & "其电脑名称是 " & name & vbcrlf & "其登录地址是 " & IP & vbcrlf & "其登录时间是 " & rq,"警告",MessageBoxButtons.ok,MessageBoxIcon.warning)
            e.Form.Close
            dr0("异机登录")="是"
            dr0 = .AddNew()
            dr0("登录用户")=_username
            dr0("电脑名称")=HostName
            dr0("登录地址")=IPAdress.ToString
            dr0("登录时间")=dt2
            dr0("机器码")=computerId
            dr0("异机登录")="是"
            .save()
             syscmd.project.Exit(True) 
        Else
            dr0("登录地址")=IPAdress.ToString
            dr0("登录时间")=dt2
            .save()
        End If
    Else
        '未登录的处理
        dr0 = .AddNew()
        dr0("登录用户")=_username
        dr0("电脑名称")=HostName
        dr0("登录地址")=IPAdress.ToString
        dr0("登录时间")=dt2
        dr0("机器码")=computerId
        .save()
    End If
End With

 

Dim i As Integer
' 在退出系统的菜单按钮代码前和关闭项目事件前的代码中用到下列代码,以保证用户登录记录删除成功
'MainTable=Tables("登录管理")
'With CurrentTable
'    i = .Findrow("登录用户= '" & _username & "'",0,False)
'    If i>-1 andalso .rows(i)("异机登录") ="" Then
'        .Rows(i).Delete()
'        DataTables("登录管理").save() '在登录窗口的"退出"按钮中也要增加该保存命令
'    End If
'End With



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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2012/8/21 9:48:00 [显示全部帖子]

'用户切换按钮代码:

Dim i As Integer
MainTable=Tables("登录管理")
With CurrentTable
    i = .Findrow("登录用户= '" & _username & "'",0,False)
    If i>-1 And .rows(i)("异机登录") ="" Then 
        .Rows(i).Delete()
    End If
End With
_username=""
Syscmd.Project.Save()
Forms("用户登录").Open()


 回到顶部