开发者和管理员的特殊性
采用外部数据表存储用户信息,其实存储的只是普通用户的信息,开发者和管理员的信息始终是存储在本地项目的。
因此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时,需要再输入一次密码。
至于服务端代码,则不需要调整。