已经在exit函数中写了e.Appendcookie("openid","")
e.Appendcookie("nickname","")
进行清空cookie 但是没有采用checktoken函数内容。
原来的checktoken函数代码为:
'检查授权
Dim id As String = Args(0)
Dim e As RequestEventArgs = args(1)
Dim idValue As String = e.Cookies("id") '从Cookie取加密的内容
If idValue > "" Then
Dim pas As String = DecryptText(idValue,Vars("Key1"),Vars("key2")) '解密参数
If pas > "" Then
Dim arr() As String = pas.Split("|")
Dim qt As String = e.Cookies("cqt")
If qt <> arr(3) Then Return Nothing
If id = arr(0) Then '如果解密后的第一个参数和id参数一致
Dim d As Date = CDate(arr(2))
If d >= Date.Today Then '如果Cookie中的日期大于等于今天
Dim dr As DataRow = DataTables("WeChatUsers").Find("[_Identify] = " & id) '查询用户表是否存在此id的主键
If dr IsNot Nothing AndAlso dr("OpenID") = arr(1) Then '查询的openid是否和解密的第二个参数一致
Return dr
End If
End If
End If
End If
End If
Return Nothing
原来的exit函数代码为:
Dim e As RequestEventArgs = Args(0)
Dim id As String = e.PlainText
If id > "" Then
Dim arr() As String = id.Split("|")
Dim dr As DataRow = Functions.Execute("CheckToken",arr(0),e)
If dr IsNot Nothing Then
dr = DataTables("WeChatUsersLogin").Find("[OpenID] = '" & dr("OpenID") & "' and Online = 1")
If dr IsNot Nothing Then
dr("Online") = False
dr.Save
If arr.Length = 2 AndAlso arr(1) = "Y" Then
dr = DataTables("UsersTestForm").Find("[OpenId] = '" & dr("OpenID") & "' and IsCompleted = 0","TestID desc")
If dr IsNot Nothing Then
dr("IsCompleted") = True
dr("CorrectRate") = dr("CorrectQty") / dr("QuestionQty")
dr.Save
End If
End If
End If
End If
End If
e.WriteString("OK")
现在的exit函数代码为:
Dim e As RequestEventArgs = Args(0)
Dim wb As New weui
Dim dr As DataRow = DataTables("WeChatUsersLogin").Find("[OpenID] = '" & e.Cookies("OpenID") & "' and Online = 1")
If dr IsNot Nothing Then
dr("Online") = False
dr.Save
dr = DataTables("UsersTestForm").Find("[OpenId] = '" & e.Cookies("OpenID") & "' and IsCompleted = 0","TestID desc")
If dr IsNot Nothing Then
dr("IsCompleted") = True
dr("CorrectRate") = dr("CorrectQty") / dr("QuestionQty")
dr.Save
End If
End If
e.Appendcookie("openid","")
e.Appendcookie("nickname","")
e.WriteString("<meta http-equiv='refresh' c>") '跳转到登录页
e.WriteString(wb.Build)
老师可以指导下 怎么能够完美实现退出后,原有任何记录都不允许访问。当前exit代码只能实现对应的online状态和页面的正常返回
当前还有一个问题 如果退出之后再次登录当前账户 不会报错 如果是登录别的新账户 就会报错
具体如下:
[此贴子已经被作者于2021/3/22 14:48:08编辑过]