Foxtable(狐表)用户栏目专家坐堂 → 移动端修改密码问题


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

主题:移动端修改密码问题

帅哥哟,离线,有人找我吗?
狐表(小白)
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
移动端修改密码问题  发帖心情 Post By:2021/11/15 21:15:00 [只看该作者]

UserName 和 UserID 进行加密和随机生成后,保存在 在线用户表,移动端用户在修改密码时,如何获取未加密之前的 UserName 对用户表的 UserName 名验证,验证通过后修改用户表的 password ?给个例子,谢谢!
UserID = Rand.NextString(16) '生成随机用户ID
UserName = EncryptText(UserName,"123","123") '将用户名加密.

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

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

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




[此贴子已经被作者于2021/11/15 21:16:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/15 22:12:00 [只看该作者]

不明白您的下线用户和用户直接的关系,请提供实例说明问题

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2021/11/16 8:52:00 [只看该作者]

用户表是存储所有用户的账号密码,在线用户表是记录每个用户登录系统后加密账号和随机生成ID的临时表。用于浏览器身份安全验证,里面userid和username和浏览器的 Cookie(userid)和username相同,现在想让每个用户通过浏览器自己修改密码,怎么让浏览器的Cookie(userid)和用户表的userID进行验证?写到加粗字体代码那时不知道怎么处理了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:身份验证.txt

修改密码htm:
'修改密码
    Dim Verified As Boolean '身份验证判断
    Dim UserName As String 
    Dim Password As String 
    Dim UserID As String
If e.Path = "xgmm.htm" '打开的是修改密码网页时
  If e.PostValues.ContainsKey("oldpw") AndAlso e.PostValues.ContainsKey("newpw") Then
    UserName = e.Cookies("username")  '从cookie中获取用户名
        UserID = e.Cookies("userid")  '从cookie中获取随机ID
    Dim dr As DataRow 
    dr = DataTables("在线用户").Find("UserName = '" & UserName & "'") '从在线用户表中获取相同用户名
    If dr IsNot Nothing AndAlso dr("UserID") = UserID Then  '如果找到相同ID用户的话
   UserName = e.PostValues("username")
   Password = e.PostValues("password")
   'MessageBox.Show("name='"& username &"' And password='"& password &"'")
   Dim s1 as string = e.PostValues("oldpw") '旧密码
       Dim s2 as string = e.PostValues("newpw") '新密码 
       Dim drz As DataRow
           drz = DataTables("用户").Find("UserName= '" & UserName & "'") '从用户表中获取用户名
    If drz IsNot Nothing Then '如果找到
   Verified = True  '身份验证通过             
            End If
            If Verified Then   '身份验证通过后
                If Password = s1 Then  '输入的旧密码相同时
                   drz("Password") = drz("Password").replace(s1,s2)  '用输入的新密码替换旧密码
   drz.save '保存一下
   wb.AddTopTips("","toptip1","修改完成,请重新登录!").msec = 2000
   wb.InsertHTML("<meta http-equiv='Refresh' c>") '修改完成后直接跳转到登录面    
                   e.WriteString(wb.Build) '生成网页
                   Return '必须的
                Else  '输入的旧密码错误提示
   wb.AddTopTips("","toptip2","请输入正确的旧密码!").msec = 2000
    End If
            End If
    End If
  End If
    End If


[此贴子已经被作者于2021/11/16 9:01:59编辑过]

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/16 9:03:00 [只看该作者]

如果Cookie(userid)里是加密了的数据,做个解密就行了:http://www.foxtable.com/webhelp/topics/0351.htm

dim 解密后的id as string = DecryptText(e.Cookies("userid"),"123","123")

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2021/11/16 9:29:00 [只看该作者]


绿色调试窗口可以正常返回加密后的字符串,红色解密时报错!

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


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

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看
'修改密码
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
'开始生成网页
Select Case e.path
    Case "xgmm.htm" 
        wb.AddForm("","form1","xgmm.htm")
        With wb.AddInputGroup("form1","rdg1","修改密码")
            .AddInput("oldpw","原密码:","password") '旧密码
.AddInput("newpw","新密码:","password") '新密码
        End With
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1","修改","submit")
        End With
e.WriteString(wb.Build) '生成网页
End Select


    Dim UserName As String 
    Dim UserID As String
If e.Path = "xgmm.htm" '打开的是修改密码网页时
  If e.PostValues.ContainsKey("oldpw") AndAlso e.PostValues.ContainsKey("newpw") Then

    UserName = e.Cookies("username") '从cookie中获取用户名
            UserID = e.Cookies("userid")  '从cookie中获取随机ID
MessageBox.Show("name='"& UserName &"' And ID='"& UserID &"'")

dim s as string = DecryptText(e.Cookies("username"),"123","123") '从cookie中获取用户名解密
MessageBox.Show("name='"& s &"' And ID='"& UserID &"'")
  End If
    End If

[此贴子已经被作者于2021/11/16 9:30:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2021/11/16 9:49:00 [只看该作者]

找到问题了,我把密匙弄错了,图片点击可在新窗口打开查看谢谢蓝老师!

 回到顶部