开发者和管理员的特殊性

采用外部数据表存储用户信息,其实存储的只是普通用户的信息,开发者和管理员的信息始终是存储在本地项目的。
因此OpenQQ使用内置身份验证的时候,默认不包括开发者和管理员,只有普通用户才能使用内置身份验证登录OpenQQ。
通常这对实际的使用并没有影响,因为实际使用的时候,客户端都是普通用户。

如果开发过程中,为便于调试分析,希望开发者和管理员也能使用内置身份登录OpenQQ,可以将客户端的登录代码要调整为:

If QQClient.Ready Then
    MessageBox.show("QQClient已经启动,请先关闭","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
   
Return

End
If
QQClient
.ServerIP = e.Form.Controls("txtIP").Value  '指定服务器IP地址
QQClient
.ServerPort = e.Form.Controls("txtPort").Value  '指定服务器端口
If
user.Type = UserTypeEnum.User Then '如果是普通用户
    QQClient.UserName =""
    QQClient.Password =
""

Else
'如果是开发者或管理员
    Dim pwd As String
    If InputPassWord(pwd,"提示","请输入" & User.Name & "的密码:") Then
       
QQClient.UserName = User.Name
        QQClient.Password = pwd
    Else
        Return
    End
If

End
If
If
QQClient.Start() = True '如果登录成功
    e.Form.Controls("btnChat").Enabled = True
    Dim msg As String
"
恭喜,OpenQQ登录成功!"
    If QQClient.ServerMessage > "" Then
'
如果服务器返回了欢迎信息
        msg = msg & QQClient.ServerMessage
    End If
    ConfigBar.Items("OpenQQ").SmallImage = GetImage("online.ico")
    popMessage(msg,
"
提示",PopiconEnum.Infomation,5)
Else
'如果登录失败,显示服务器返回错误信息
   
e.Form.Controls("btnChat").Enabled = False
   
PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
End
If

意思是开发者和管理员登录OpenQQ时,需要再输入一次密码。

至于服务端代码,则不需要调整。


本页地址:http://www.foxtable.com/webhelp/topics/3049.htm