Foxtable(狐表)用户栏目专家坐堂 → 移动版检测是否登陆


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

主题:移动版检测是否登陆

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
移动版检测是否登陆  发帖心情 Post By:2018/2/23 18:14:00 [只看该作者]

下面的使用的内部函数调用  会直接进入网页  不会被登陆与否监控  要怎么检测后必须登陆呢

Dim wb As New WeUI '定义一个基于weui框架的网页生成器
Dim e As RequestEventArgs = args(0)
'Dim u As String = e.cookies("name")
Dim s As String = e.cookies("部门")
'Dim x As String = e.cookies("岗位")
'For Each dr As DataRow In DataTables("财务流水").sqlSelect("[部门] = '" & s & "'","日期 Desc")
With wb.AddTable("","Table1")
    '.MergeCols = 2 '合并左边2列
    .Alternate = 3
    Dim nms() As String = {"经手人","编号","科目","摘要","收入","支出","日期" }
    .Head.AddRow(nms)
    .body.AddRow("汇总","","","",DataTables("财务流水").sqlcompute("sum(收入)","[部门] = '" & s & "'"),DataTables("财务流水").sqlcompute("sum(支出)","[部门] = '" & s & "'"))
    For Each r As DataRow In DataTables("财务流水").sqlSelect("[部门] = '" & s & "'", "", "日期 Desc")
        With .Body.AddRow(r("经手人"),r("编号"),r("科目"),r("摘要"))
            .AddCell(Format(r("收入"),"#0.00"))
            .AddCell(Format(r("支出"),"#0.00"))
            .AddCell(Format(r("日期"),"MM月dd日"))
        End With
    Next
End With
e.WriteString(wb.Build)

如何让下面的身份验证能生效
'身份验证
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" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password")  Then
        UserName = e.PostValues("username")
        Password = e.PostValues("password")
    End If
End If
'Dim dr As DataRow  自定义窗口使用 密码是明码
'dr = DataTables("用户表").Find("name = '" & UserName & "'")
'If dr IsNot Nothing AndAlso Password = dr("password") Then
'Verified  = True
Dim dr As DataRow
dr = DataTables("用户表").Find("name = '" & UserName & "'")
If dr IsNot Nothing AndAlso dr("config").contains(MD5Encrypt(password)) Then
    Verified  = True
    For Each u As UserInfo In users
        output.show(u.name)
        If u.name = username Then
            'msgbox(u.group)
            'msgbox(u.Roles)
            wb.AppendCookie("部门",u.group)
            wb.AppendCookie("岗位",u.Roles)
            wb.AppendCookie("name",u.name)
        End If
    Next
End If

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

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


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

你的身份验证的代码,要写到httprequest事件的,每次都要检测一次的。

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/2/23 18:21:00 [只看该作者]


下面代码是写到httprequest事件的


'身份验证
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" '如果是通过登录页面访问,从PostValues即可中提取用户名和密码
    If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password")  Then
        UserName = e.PostValues("username")
        Password = e.PostValues("password")
    End If
End If
'Dim dr As DataRow  自定义窗口使用 密码是明码
'dr = DataTables("用户表").Find("name = '" & UserName & "'")
'If dr IsNot Nothing AndAlso Password = dr("password") Then
'Verified  = True
Dim dr As DataRow
dr = DataTables("用户表").Find("name = '" & UserName & "'")
If dr IsNot Nothing AndAlso dr("config").contains(MD5Encrypt(password)) Then
    Verified  = True
    For Each u As UserInfo In users
        output.show(u.name)
        If u.name = username Then
            'msgbox(u.group)
            'msgbox(u.Roles)
            wb.AppendCookie("部门",u.group)
            wb.AppendCookie("岗位",u.Roles)
            wb.AppendCookie("name",u.name)
        End If
    Next
End If

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

我输入http://127.0.0.1 就会要求输入登陆  
如果输入http://127.0.0.1/xkf1.htm   直接进入网页也可以 不会有要求登陆

[此贴子已经被作者于2018/2/23 18:23:18编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111411 积分:567125 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/2/23 20:16:00 [只看该作者]

如果已经登录过,登录信息保存在Cookie,自然不会再验证登录。

先关闭浏览器,然后重新打开,第一次直接输入http://127.0.0.1/xkf1.htm也不会要求登录吗?

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/2/24 11:40:00 [只看该作者]

http://127.0.0.1/xkf1.htm
链接我发总到一台新的电脑打开就不会检测是否登陆
我通过企业微信菜单链接也是一样不会提醒需要登陆

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

……
msgbox(Verified) '这里提示什么值
If Verified AndAlso e.Path = "logon.htm"  Then '如果用户访问的是登录页,且身份验证成功
    wb.AppendCookie("username",UserName) '将用户名和密码写入cookie
    wb.AppendCookie("password",Password)
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '直接跳转到首页
    e.WriteString(wb.Build) '生成网页
    Return '必须的
ElseIf Verified = False AndAlso e.Path <> "logon.htm" Then '如果用户身份验证失败,且访问的不是登录页面
    wb.InsertHTML("<meta http-equiv='Refresh' c>") '这里代码不完整,截图看看
    e.WriteString(wb.Build) '生成网页
    msgbox(e.Path) '这里能够弹出来吗,提示什么内容?
    Return '必须的
End If
[此贴子已经被作者于2018/2/24 11:48:10编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/2/24 18:23:00 [只看该作者]

刚才更新了 2018版  不见了httprequest 服务器
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180224182148.png
图片点击可在新窗口打开查看
代码也不见了  怎么找回
[此贴子已经被作者于2018/2/24 18:34:41编辑过]

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


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

检查一下更新,看是否升级到最新版了。

 

如果还有问题,先退回旧版使用。


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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/2/25 12:00:00 [只看该作者]

已经是最新的版本了
旧版文件没有了
[此贴子已经被作者于2018/2/25 12:06:53编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/2/25 12:07:00 [只看该作者]

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

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