Foxtable(狐表)用户栏目专家坐堂 → HTTP用户身份验证


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

主题:HTTP用户身份验证

美女呀,离线,留言给我吧!
tesia255
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
HTTP用户身份验证  发帖心情 Post By:2017/10/23 1:01:00 [只看该作者]

我用下面的代码,替换上面教学中的代码,页面总是加载中,哪里错误了呢?  教学代码:http://www.foxtable.com/mobilehelp/index.htm?page=0041.htm
我是想用现有的用户表,验证登录身份。是外部数据源


'验证用户身份
If UserName = "张三" AndAlso Password = "888" Then
    Verified  = True
ElseIf Username = "李四" AndAlso Password="999" Then
    Verified  = True
End If

----------------------------------------------------------------------------------------------

Dim dr As DataRow
dr = DataTables("Staff").Find("email ='" & UserName & "'")  '在职员表中找到邮箱为输入邮箱的

'验证用户身份
If  Password = dr("password") Then
    Verified  = True
End If



[此贴子已经被作者于2017/10/23 1:02:36编辑过]

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


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

代码改成

 

Dim dr As DataRow
dr = DataTables("Staff").Find("email ='" & UserName & "'")  '在职员表中找到邮箱为输入邮箱的

'验证用户身份
If dr isnot Nothing AndAlso Password = dr("password") Then
    Verified  = True
End If

 回到顶部
美女呀,离线,留言给我吧!
tesia255
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
  发帖心情 Post By:2017/10/23 10:15:00 [只看该作者]


您好,登录页面显示出来了,但是为什么点击登录后一直还是在登录页面。输入的用户名是表格中的正确对应的。

教学代码中其他都没有改。

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


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

1、直接复制粘贴帮助文档代码进去,是否有问题?

 

2、替换代码后,如果一直在登陆页,说明没有查找到表数据。核对你表数据和你输入的数据。


 回到顶部
美女呀,离线,留言给我吧!
tesia255
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
  发帖心情 Post By:2017/10/23 10:24:00 [只看该作者]

教学源代码粘贴进去无问题,以下是我现在的代码,只有加粗部分是改了的,其他都是教学代码:


Dim sb As New StringBuilder
Dim Verified As Boolean
Dim UserName As String = e.Cookies("username") '从cookie中获取用户名
Dim Password As String = e.Cookies("password") '从cookie中获取用户密码
'如果在登录页面输入了用户名和密码 后单击确定按钮
If e.Path = "logon.htm" AndAlso e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password")  Then
    UserName = e.PostValues("username")
    Password = e.PostValues("password")
End If


'----------------------------------------------------------------------------------------------

Dim dr As DataRow
dr = DataTables("Staff").Find("email ='" & UserName & "'")  '在职员表中找到邮箱为输入邮箱的
'验证用户身份

If dr IsNot Nothing AndAlso Password = dr("password") Then
    Verified  = True
End If


'_____________________________________________________________________________

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

'_______________________________________________________________________________________


Select Case e.path
    Case "logon.htm"
        sb.AppendLine("<form action='logon.htm' enctype='multipart/form-data' method='post' id='form1'  name='form1'>")
        If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("Password")  Then '判断是否是验证失败后的重新登录
            sb.AppendLine("用户名或密码错误!</br></br>")
            sb.AppendLine("户名: <input name='username' id='username' value='" & UserName & "''><br/><br/>")
            sb.AppendLine("密码: <input type='password' name='password' id='password' value ='" & Password & "'><br/><br/>")
        Else
            sb.AppendLine("户名: <input name='username' id='username'><br/><br/>")
            sb.AppendLine("密码: <input type='password' name='password' id='password'><br/><br/>")
        End If
        sb.AppendLine("<input type='submit' name='sumbit' id='sumbit' value='登录'>")
        sb.AppendLine("<input type='reset' name='reset' id='reset' value='重置'>")
        sb.AppendLine("</form>")
        e.WriteString(sb.ToString)
    Case "exit.htm"
        e.Appendcookie("username", "") '清除cookie中原来的用户名和密码
        e.Appendcookie("Password", "")
        e.WriteString("<meta http-equiv='refresh' c>") '跳转到登录页
    Case "", "default.htm"
        sb.AppendLine("这是首页<br/><br/>")
        sb.AppendLine("<a href='order.htm'>订购产品<a><br/>")
        sb.AppendLine("<a href='product.htm'>产品列表<a><br/>")
        sb.AppendLine("<a href='exit.htm'>退出登录<a><br/>")
        e.WriteString(sb.Tostring)
    Case "order.htm"
        e.WriteString("这是订购页")
    Case "product.htm"
        e.WriteString("这是产品页")
End Select

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


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

1、数据表Staff没有找到对应的用户,或者你数据没有加载出来导致找不到;

 

2、如果找到了,那就是password不匹配。


 回到顶部
美女呀,离线,留言给我吧!
tesia255
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
  发帖心情 Post By:2017/10/23 11:20:00 [只看该作者]

数据是都加载的,用户名和密码也是按照数据库中的填写的   图片点击可在新窗口打开查看

是因为外部数据源吗?

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


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

加入msgbox,看弹出什么

 

 

Dim dr As DataRow
dr = DataTables("Staff").Find("email ='" & UserName & "'")  '在职员表中找到邮箱为输入邮箱的
'验证用户身份

 

msgbox(dr is nothing)

msgbox(username & " | " & password)

if dr IsNot Nothing Then

    msgbox(username & " | " & password & " | " & dr("password"))

end If

If dr IsNot Nothing AndAlso Password = dr("password") Then

    Verified  = True

End If

 回到顶部
美女呀,离线,留言给我吧!
tesia255
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
  发帖心情 Post By:2017/10/23 22:10:00 [只看该作者]

返回TRUE

返回   |

等于用户名密码返回的空

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


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

返回TRUE说明Staff没有这个提交上来的用户名的数据,注意find查询条件表达式的值是大小写敏感的

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