以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]OpenQQ 客户端登录出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76994)

--  作者:yyzlxc
--  发布时间:2015/11/9 14:56:00
--  [求助]OpenQQ 客户端登录出错
本地分别建两个项目,自定义登录系统,使用内置身份验证,服务端启用状态,运行客户端登录出错,请各位老师指教,谢谢!!


图片点击可在新窗口打开查看此主题相关图片如下:捕获3.png
图片点击可在新窗口打开查看

均为状态按钮

服务端
CurrentTable.EnterKeyActionDown = e.ToggleButton.Pressed
If e.ToggleButton.Pressed = True Then
    QQServer.ServerIp = "127.0.0.1" \'指定IP地址
    QQServer.ServerPort = 52177 \'指定端口
    QQServer.HeartbeatInterval = 30 \'指定心跳时间
    QQServer.HeartbeatTimeout = 100 \'指定心跳超时时间
    QQserver.Buildin = True \'启用内置身份验证
    QQServer.Start() \'启动QQServer
    Dim btn As RibbonMenu.ToggleButton
    btn = RibbonTabs("系统菜单").Groups("用户功能").Items("启用QQ")
    btn.Text = "暂停 QQ"
Else
    QQServer.Stop()
    Dim btn As RibbonMenu.ToggleButton
    btn = RibbonTabs("系统菜单").Groups("用户功能").Items("启用QQ")
    btn.Text = "启用 QQ"
End If


客户端
CurrentTable.EnterKeyActionDown = e.ToggleButton.Pressed
If e.ToggleButton.Pressed = True Then
    QQClient.ServerIP = "127.0.0.1"
    QQClient.ServerPort = 52177
    QQClient.UserName = ""
    QQClient.Password = ""
    If QQClient.Start() = True
        Dim msg As String =  "恭喜,OpenQQ登录成功!"
        If QQClient.ServerMessage > "" Then
            msg = msg & QQClient.ServerMessage
        End If
        PopMessage(msg,"提示",PopiconEnum.Infomation,5)
    Else
        PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
    End If
    Dim btn As RibbonMenu.ToggleButton
    btn = RibbonTabs("系统菜单").Groups("用户功能").Items("登录QQ")
    btn.Text = "退出 QQ"
Else
    If QQClient.Ready = True Then
        QQClient.Stop()
    End If
    Dim btn As RibbonMenu.ToggleButton
    btn = RibbonTabs("系统菜单").Groups("用户功能").Items("登录QQ")
    btn.Text = "登录 QQ"
End If




--  作者:Hyphen
--  发布时间:2015/11/9 15:03:00
--  

登录身份验证的事件UserLogging有没有做相应更改

 

http://www.foxtable.com/help/topics/3017.htm

 


--  作者:大红袍
--  发布时间:2015/11/9 15:04:00
--  

这句代码

 

QQClient.UserName = ""

 

改成如

 

QQClient.UserName = "A.B"


--  作者:yyzlxc
--  发布时间:2015/11/9 15:42:00
--  
谢谢两位老师的指教,修改了QQClient.UserName = ""的代码后,原来的错误解决,出现“登录密码错误”的提示,问题在哪里,请老师指教,谢谢!!


UserLogging事件代码


Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("用户信息").Find("部门 = \'" & pts(0) & "\' And 姓名 = \'" & pts(1) & "\'")
If dr1 Is Nothing  Then \'判断此用户不存在
    e.Message  = "用户名错误!" \'返回给登录者的提示信息
    Return
End If
If dr1("MM1") <> e.Password Then \'如果密码错误
    e.Message  = "登录密码错误!" \'返回给登录者的提示信息
    Return
End If
e.Success = True \'允许用户登录
\'添加所有同事为好友
For Each dr2 As DataRow In DataTables("用户信息").DataRows
    Dim nm As String =  dr2("部门") & "." & dr2("姓名")
    If nm <> e.UserName Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

--  作者:大红袍
--  发布时间:2015/11/9 15:48:00
--  

提示密码错误,就是你密码错误了。

 

你这样写看看返回什么?

 

If dr1("MM1") <> e.Password Then \'如果密码错误

    e.Message = dr1("MM1") & vbcrlf & e.Password

--  作者:yyzlxc
--  发布时间:2015/11/9 16:06:00
--  
大红袍老师,按上述代码加入,返回的的密码与用户信息表相符,没有错。
--  作者:大红袍
--  发布时间:2015/11/9 16:07:00
--  

是不是有空格?这样看看

 

e.Message = "123" & dr1("MM1") & "123" & vbcrlf & "123" & e.Password & "123"

 


--  作者:yyzlxc
--  发布时间:2015/11/9 16:08:00
--  
只有一段密码
--  作者:大红袍
--  发布时间:2015/11/9 16:10:00
--  
弹出什么?
--  作者:yyzlxc
--  发布时间:2015/11/9 16:11:00
--  

返回:
123yyzlxc123
123123

e.Password 是空的