Foxtable(狐表)用户栏目专家坐堂 → 手机端验证登陆的问题


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

主题:手机端验证登陆的问题

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


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
手机端验证登陆的问题  发帖心情 Post By:2017/9/20 16:05:00 [只看该作者]

Dim zh As String = e.Cookies("zh") '从cookie中获取用户名
Dim bh As String = e.Cookies("bh")
Dim mm As String = e.Cookies("mm") '从cookie中获取用户密码
If e.Path = "logon.htm" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("bh") AndAlso e.PostValues.ContainsKey("mm")  Then
        bh = e.PostValues("bh")
        mm = e.PostValues("mm")
’Dim tr As DataRow=DataTables("人员表").sqlfind("编号='" & bh & "' and 启用=1 and 密码='" & EncryptText(mm,"e5","ff") & "'" )
‘’If tr IsNot Nothing Then
 ‘’   Verified  = True
  ‘’  zh=tr("姓名")
‘’End If

    End If
End If
Dim tr As DataRow=DataTables("人员表").sqlfind("编号='" & bh & "' and 启用=1 and 密码='" & EncryptText(mm,"e5","ff") & "'" )
If tr IsNot Nothing Then
    Verified  = True
    zh=tr("姓名")
End If

放到蓝色部分
提示:
.NET Framework 版本:2.0.50727.8794
Foxtable 版本:2017.8.19.1
错误所在事件:项目,HttpRequest
详细错误信息:
String 引用没有设置为 String 的实例。
参数名: s
用messbox弹了一下bh mm是空值
我把身份验证判断放到红色部分 无法验证跳转 但bh mm有数据


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/20 16:17:00 [只看该作者]

弹出,看看数据是什么

 

msgbox("编号='" & bh & "' and 启用=1 and 密码='" & EncryptText(mm,"e5","ff") & "'")

 

在你的sql数据库那里执行sql语句查找数据

 

Select * from 人员表 where 条件


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


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/20 16:59:00 [只看该作者]

现在的问题是 我把验证代码放到红色部分,能够验证 但是不能跳转default.htm 一直在登录页来回循环

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


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/20 17:04:00 [只看该作者]

Dim zh As String = e.Cookies("zh") '从cookie中获取用户名
Dim bh As String = e.Cookies("bh")
Dim mm As String = e.Cookies("mm") '从cookie中获取用户密码
If e.Path = "logon.htm" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("bh") AndAlso e.PostValues.ContainsKey("mm")  Then
        bh = e.PostValues("bh")
        mm = e.PostValues("mm")
        '' MessageBox.show("编号='" & bh & "' and 启用=1 and 密码='" & EncryptText(mm,"e5","ff") & "'")
        Dim tr As DataRow=DataTables("人员表").sqlfind("编号='" & bh & "' and 启用=1 and 密码='" & EncryptText(mm,"a5","erp") & "'" )
        If tr IsNot Nothing Then

            Verified  = True
MessageBox.show("2")
            zh=tr("姓名")
        End If
        '
    End If
End If

If Verified AndAlso e.Path = "logon.htm"  Then '如果用户访问的是登录页,且身份验证成功
    wb.AppendCookie("bh",bh) '将用户名和密码写入cookie
    wb.AppendCookie("mm",mm)    
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '直接跳转到首页
    e.WriteString(wb.Build) '生成网页
    Return '必须的
ElseIf Verified = False AndAlso e.Path <> "logon.htm" Then '如果用户身份验证失败,且访问的不是登录页面
MessageBox.show("1")
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
    e.WriteString(wb.Build) '生成网页
    Return '必须的
End If

先弹出2 再弹出1 有点搞不懂

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/20 17:31:00 [只看该作者]

代码逻辑不正确,按照帮助做:http://www.foxtable.com/mobilehelp/scr/0138.htm

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


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/20 17:34:00 [只看该作者]

我就是按照帮助来做的 只是把相关控件名称和身份验证那部分代码做了修改
现在是先弹出2 然后弹出 false default.htm 

Dim Verified As Boolean '用于标记用户是否通过了身份验证
Dim zh As String = e.Cookies("zh") '从cookie中获取用户名
Dim bh As String = e.Cookies("bh")
Dim mm As String = e.Cookies("mm") '从cookie中获取用户密码
If e.Path = "logon.htm" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("bh") AndAlso e.PostValues.ContainsKey("mm")  Then
        bh = e.PostValues("bh")
        mm = e.PostValues("mm")                '
    End If
End If
If e.PostValues("bh")<>"" AndAlso e.PostValues("mm")<>"" Then
    Dim tr As DataRow=DataTables("人员表").sqlfind("编号='" & e.PostValues("bh") & "' and 启用=1 and 密码='" & EncryptText(e.PostValues("mm"),"a5","erp") & "'" )
    If tr IsNot Nothing Then
        Verified  = True
        zh=tr("姓名")
MessageBox.show("2")
    End If
End If


If Verified AndAlso e.Path = "logon.htm"  Then '如果用户访问的是登录页,且身份验证成功
    wb.AppendCookie("bh",bh) '将用户名和密码写入cookie
    wb.AppendCookie("mm",mm)
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '直接跳转到首页
    e.WriteString(wb.Build) '生成网页
    Return '必须的
ElseIf Verified = False AndAlso e.Path <> "logon.htm" Then '如果用户身份验证失败,且访问的不是登录页面
    MessageBox.show( Verified  & e.path)
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
    e.WriteString(wb.Build) '生成网页
    Return '必须的
End If

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/20 17:54:00 [只看该作者]

弹出编号和密码看看

Dim Verified As Boolean '用于标记用户是否通过了身份验证
Dim zh As String = e.Cookies("zh") '从cookie中获取用户名
Dim bh As String = e.Cookies("bh")
Dim mm As String = e.Cookies("mm") '从cookie中获取用户密码
If e.Path = "logon.htm" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("bh") AndAlso e.PostValues.ContainsKey("mm")  Then
        bh = e.PostValues("bh")
        mm = e.PostValues("mm")                '
    End If
End If
msgbox(bh)
msgbox(mm)
If bh > "" AndAlso mm > "" Then
    Dim tr As DataRow=DataTables("人员表").sqlfind("编号='" & bh & "' and 启用=1 and 密码='" & EncryptText(mm,"a5","erp") & "'" )
    If tr IsNot Nothing Then
        Verified  = True
        zh=tr("姓名")
        MessageBox.show("2")
    End If
End If


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


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/20 18:27:00 [只看该作者]

可以了 真是神奇
如果读取到cookies把用户名自动填到用户名栏目怎么写?

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


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/20 19:21:00 [只看该作者]

Dim Verified As Boolean '用于标记用户是否通过了身份验证
Dim zh As String = e.Cookies("zh") '从cookie中获取用户名
Dim bh As String = e.Cookies("bh")
Dim mm As String = e.Cookies("mm") '从cookie中获取用户密码
If e.Path = "logon.htm" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("bh") AndAlso e.PostValues.ContainsKey("mm")  Then
        bh = e.PostValues("bh")
        mm = e.PostValues("mm")                '
    End If
End If
MessageBox.show(mm)
If bh<>"" AndAlso mm<>"" Then
    Dim tr As DataRow=DataTables("人员表").sqlfind("编号='" & e.PostValues("bh") & "' and 启用=1 and 密码='" & mm & "'" )
    If tr IsNot Nothing Then
        Verified  = True
        zh=tr("姓名")
    End If
End If


If Verified AndAlso e.Path = "logon.htm"  Then '如果用户访问的是登录页,且身份验证成功
    wb.AppendCookie("bh",bh) '将用户名和密码写入cookie
    wb.AppendCookie("mm",EncryptText(e.PostValues("mm"),"a5","erp"))
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '直接跳转到首页
    e.WriteString(wb.Build) '生成网页
    Return '必须的
ElseIf Verified = False AndAlso e.Path <> "logon.htm" Then '如果用户身份验证失败,且访问的不是登录页面
    MessageBox.show( Verified  & e.path)
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
    e.WriteString(wb.Build) '生成网页
    Return '必须的
End If

我在将密码写入cookies的时候进行了加密  现在遇到一个问题 如果密码修改了 程序会一直以本地的密码来验证 怎么来改优先级呢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/20 22:03:00 [只看该作者]

以下是引用rjh4078在2017/9/20 19:21:00的发言:
 

我在将密码写入cookies的时候进行了加密  现在遇到一个问题 如果密码修改了 程序会一直以本地的密码来验证 怎么来改优先级呢

 

你修改密码以后,理应重新登陆一次的。现在的网站都是这样做的。


 回到顶部
总数 12 1 2 下一页