Foxtable(狐表)用户栏目专家坐堂 → [求助]无法增加cookies值


  共有2302人关注过本帖树形打印复制链接

主题:[求助]无法增加cookies值

帅哥哟,离线,有人找我吗?
无限5180
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
[求助]无法增加cookies值  发帖心情 Post By:2019/4/8 9:49:00 [显示全部帖子]

老师,我再进行增加cookie值后发现一直无法增加,请帮忙看看:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui

If e.Cookies.ContainsKey("username") Then
      msgbox("e.Cookies.ContainsKey("""username""") : " & e.Cookies("username"))
End If
Static UserTable As DataTable '定义一个变量,用于存储用户随机身份ID,以及最后一次活动时间.
Static ClearTime As Date

If UserTable Is Nothing Then   '创建用于记录登录信息的临时表
    ClearTime = Date.Now()
    Dim dtb As New DataTableBuilder("UserInfos")
    dtb.AddDef("UserName", Gettype(String), 160)
    dtb.AddDef("UserGroup", Gettype(String), 160)
    dtb.AddDef("UserPost", Gettype(String), 160)
    dtb.AddDef("UserCode", Gettype(String), 160)
    dtb.AddDef("UserID",Gettype(String),160)
    dtb.AddDef("UserxtID",Gettype(String),160)
    dtb.AddDef("ActiveTime",Gettype(Date))
    UserTable = dtb.Build(True)
End If

If (Date.Now - ClearTime).TotalMinutes >= 30 Then '清除超过30分钟没有操作的登录信息
    UserTable.DeleteFor("ActiveTime < #" & Date.Now.AddMinutes(-30) & "#")
    ClearTime = Date.Now()
End If


Dim UserName As String
Dim UserGroup As String
Dim UserPost As String
Dim Password As String
Dim UserID As String
Dim UserxtID As String
Dim UserCode As String

If e.path = "logon.htm" Or e.path = "dlyz.htm" Then
    If e.PostValues.count > 0 Then
msgbox("e.PostValues.count > 0")
        If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password")  Then
msgbox("postvalue(""username""): " & e.postvalues("username"))
            Dim Verified As Boolean  '用于标记用户是否通过了身份验证
            UserName = e.PostValues("username")
            Password = e.PostValues("password")
            '
            Dim drr As DataRow = _dt.sqlfind("name = '" & UserName & "' and password = '" & Password & "' and 代码 In ('YG','LW','FBS','GYS','CJYH')")
            If drr IsNot Nothing Then
                Verified  = True
            End If
            If Verified Then              

                Dim dr As DataRow = UserTable.Find("UserName = '" & UserName & "'")
                If  dr IsNot Nothing Then '如果是重复登录,删除以前的登录信息
                    dr.Delete()
                End If
                
                UserID = Rand.NextString(16) '生成随机用户ID
                UserName = EncryptText(drr("name"),"123","789") '将用户名加密.
                UserGroup = EncryptText(drr("分组"),"123","789") '将用户名加密.
                UserxtID = EncryptText(drr("ID"),"123","789") '将用户名加密.
                UserCode = EncryptText(drr("代码"),"123","789") '将用户名加密.

msgbox("UserID  :" & UserID)
msgbox("EncryptText(drr(""name"")) :" & UserName & " |EncryptText(drr(""分组"")) :" & UserGroup)

                wb.AppendCookie("username",UserName) '将用户名和密码写入cookie
                wb.AppendCookie("userid",UserId)
                wb.AppendCookie("usergroup",UserGroup)
                wb.AppendCookie("userxtid",UserxtID)
                wb.AppendCookie("userpost",UserPost)
                wb.AppendCookie("usercode",UserCode)


                dr = UserTable.AddNew()
                dr("UserName") = UserName
                'dr("UserGroup") = UserGroup
                'dr("UserPost") = UserPost
                'dr("UserCode") = UserCode
                dr("UserID") = UserId
                'dr("UserxtID") = UserxtID
                dr("ActiveTime") = Date.Now '记录登录时间

msgbox("usertable--UserID :" & dr("UserId") & " | userid :" & UserID & " | e.cookies(""userid""):" & e.cookies("userid") & " | e.cookies(""username""):" & e.cookies("username") & " | wb.AppendCookie(""usergroup"") :" & e.cookies("usergroup"))
                
                wb.InsertHTML("<meta http-equiv='Refresh' c>") '直接跳转到首页
                e.WriteString(wb.Build) '生成网页
                Return True  '必须的
            End If
        End If
    End If
Else '其它页面从Cookie提取登录信息进行验证
msgbox("其他网页")
    If e.Cookies.ContainsKey("username") Then
        UserName = e.Cookies("username")  '从cookie中获取用户名
        UserID = e.Cookies("userid")  '从cookie中获取 随机ID
        Dim dr As DataRow = UserTable.Find("UserName = '" & UserName & "'")
msgbox("usertable--UserID :" & dr("UserId") & " | userid :" & UserID & " | e.cookies(""userid""):" & e.cookies("userid") & " | e.cookies(""username""):" & e.cookies("username") & " | wb.AppendCookie(""usergroup"") :" & e.cookies("usergroup"))
        If dr IsNot Nothing AndAlso dr("UserID") = UserID Then  '如果通过验证,更新活动时候,继续访问其它页面.
        
            dr("ActiveTime") = Date.Now '更新活动时间

        Else '如果验证失败
msgbox("验证失败")
            wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
            e.WriteString(wb.Build) '生成网页
            Return False '必须的
        End If
    End If
End If




图片点击可在新窗口打开查看此主题相关图片如下:userid有值.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:静态表中有值,但cookie中没有值.png
图片点击可在新窗口打开查看
静态表中有值,但cookie中没有值,没有增加成功.


 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/4/8 12:36:00 [显示全部帖子]

老师,代码中else 后面就是跳转到其他页面的代码,同样没有cookie值,e.Cookies.ContainsKey("username") 为false  所以才百思不得其解!

[此贴子已经被作者于2019/4/8 12:37:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/4/8 17:11:00 [显示全部帖子]

老师,  我通过本机测试没有 问题,但发布后再上传到云服务器后就不行了,就是没法增加cookie值,msgbox显示为空,而本机测试时没有问题,正常显示cookie值,我应该怎么处理呢?拜托!这个现象可能与网页授权有关,因为是我尝试进行网页授权时才出现的

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/4/8 18:25:00 [显示全部帖子]

老师,我还发现一个现象,就是我已经把客户端的浏览器都关掉了,但云服务中的web服务器仍在不停的运行,我想就是这个原因导致的.


图片点击可在新窗口打开查看此主题相关图片如下:服务器仍在运行.png
图片点击可在新窗口打开查看

这是我已经关闭了客户端的所有网页,结果云服务器仍在运行,好像一直不停的删除cookie值

[此贴子已经被作者于2019/4/8 18:25:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/4/8 19:02:00 [显示全部帖子]

好的, 我用msgbox试了一下IP地址,地址是我本地的,现在又不会再跳出msgbox了,但还是原来的问题,cookie值无法增加.本地测试又没有问题.

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/4/10 16:09:00 [显示全部帖子]

老师,主要是做了例子估计也无法展示这个问题,我怀疑这个域名被挟持了,我把本地服务器与云服务器启动页面后msgbox显示的内容做了对比.

图片点击可在新窗口打开查看此主题相关图片如下:本地与云服务器请求msgbox.png
图片点击可在新窗口打开查看


我离开一段时间后,打开云服务器,msgbox又显示跳转了很多不知名的网页名,大概有几十个,我把其中的几个截了一下图

图片点击可在新窗口打开查看此主题相关图片如下:云服务莫名跳转的不知名网页名称.png
图片点击可在新窗口打开查看


IP地址显示:为不同地区的IP地址

图片点击可在新窗口打开查看此主题相关图片如下:ip地址1.png
图片点击可在新窗口打开查看







[此贴子已经被作者于2019/4/10 16:20:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2782 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/4/12 15:36:00 [显示全部帖子]

惭愧,找到原因了,js回调函数未一起更新导致的.

 回到顶部