If e.GetValues.ContainsKey("code") Then '如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的UserId
Dim ul As String = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}"
ul = CExp(ul,Functions.Execute("GetQYAccessToken"),e.GetValues("code"))
Dim hc As new HttpClient(ul)
Dim ret = hc.GetData
Functions.Execute("LogText","code=" & e.GetValues("code") & ", access_token结果=" & ret)
Dim jo As JObject = JObject.Parse(ret)
If jo("UserId") IsNot Nothing Then
UserId = jo("UserId")
UserName = jo("name")
End If
Else
UserId = e.Cookies("userid") '否则从cookie中提取userid和username
UserName = e.Cookies("name")
End If
Dim Verified As Boolean
If UserId > "" Then
Verified = True
e.AppendCookie("userid",UserId) '将userid和username存储在Cookie中
ElseIf e.GetValues.ContainsKey("code") = False Then '如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接
Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww51c9a9c0c93a7d18&redirect_uri=http%3a%2f%2fsxwytx.iego.cn&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
sb.Append("<meta http-equiv='Refresh' c>") '跳转到授权链接
e.WriteString(sb.ToString)
Return
End If
If Verified = False Then
sb.AppendLine("你无权访问本系统")
e.WriteString(sb.ToString)
Else
'从腾讯服务器获取指定人员的相关详细信息
Dim aa,bb As String
Dim ul As String = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={0}&userid={1}"
ul= CExp(ul,Functions.Execute("GetQYAccessToken"),UserId)
Dim hc As new HttpClient(ul)
Dim ret1 = hc.GetData
Functions.Execute("LogText","UserId=" & UserId & ", 结果1=" & ret1)
Dim jo As JObject = JObject.Parse(ret1)
If jo("errcode") = "0" Then
bb = CompressJSon(jo("department")).Trim("[","]")
End If
'根据获取的人员信息中部门ID,从腾讯服务器获取指定人员的部门信息
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token={0}&id={1}"
Dim hc1 As New HttpClient(CExp(ur,Functions.Execute("GetQYAccessToken"),bb))
Dim ret2 = hc1.GetData
Functions.Execute("LogText","bb=" & bb & ", 结果2=" & ret2)
Dim jo1 As JObject = JObject.Parse(ret2)
If jo1("errcode") = "0" Then
aa = CompressJSon(jo1("department")).Trim("[","]")
aa = aa.SubString(aa.IndexOf("name")+ 7)
aa = aa.SubString(0,aa.IndexOf(",") - 1)
End If
……其它地方自己添加,然后看日志结果进行分析