以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]权限管理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194533)

--  作者:qq51837000
--  发布时间:2024/12/19 15:51:00
--  [求助]权限管理

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

导航栏中是各个表的链接,公共变量_UserDaoHang是登录用户可浏览的各链接的名称字符串
我做了个用户切换功能,使用用户登录窗口,代码如下,但直接切换用户后浏览权限没有变换过来
每次启动程序时浏览权限都是正常的,请老师帮查一下是不是我的代码哪里有问题?


登录按钮代码:
Dim ZH As WinForm.TextBox = e.Form.Controls("TextBox_账号")
Dim MM As WinForm.TextBox = e.Form.Controls("TextBox_密码")
Dim GB As WinForm.Button = e.Form.Controls("Button_关闭")

\'1登录验证
If ZH.Text = "" Then
    Messagebox.show("登录帐号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Return
End If

\'2检查账号是否正确   _UserTable为启动时生成的用户表的临时表
Dim fr As DataRow = _UserTable.Find("[登录账号] =\'" & ZH.Text & "\'")
If fr Is Nothing Then
    MessageBox.show("账号或密码错误!", "提示")
    Return
End If

\'3检查账号是否停用
If fr("停用状态") = True Then
    MessageBox.show("账号已被停用,请联系管理员", "提示")
    Return
End If

\'4检查密码是否正确
If fr("登录密码") = MM.Text Then
    \'5密码正确就登录并赋值给用户变量
    _UserID = fr("用户ID")
    _UserName = fr("用户姓名")
    _UserGongSi = fr("公司")
    _UserBuMen = fr("部门")
    _UserZBM = fr("子部门")
    _UserBMFenZu = fr("部门分组") 
    _UserJueSe = fr("用户角色")
    _UserZhiNeng = fr("用户职能")
    _UserFenZu = fr("用户分组")
    _UserZhangHao = fr("登录账号")
    _UserDaoHang = fr("导航可见")
    
    fr("最后登录时间") = Date.Now
    fr("登录次数") += 1 
    fr.save 
    
    e.Sender.Enabled = False
    MM.Enabled = False
    ZH.Enabled = False
    GB.Enabled = False
    
    Dim pb As WinForm.ProgressBar = e.Form.Controls("进度条")
    pb.Visible = True
    pb.Minimum = 0
    pb.Maximum = 100
    pb.Value = 1
    
    e.Form.Controls("Button_登录").Text = "登录中……"
    Application.DoEvents()
    
    pb.Value = 99

    MainTable = Tables("首页")
    If Forms("左导航").Opened Then Forms("左导航").Close \'\'\'\'\'关闭导航是为切换用户时重新分配权限
    Forms("上横幅").Show()
    Forms("左导航").Show()
    
    e.Form.Close
    
Else
    MessageBox.show("账号或密码错误!", "提示")
End If

--  作者:有点蓝
--  发布时间:2024/12/19 16:14:00
--  
到"左导航"afterload事件代码里调试。看看切换用户后,权限是否有问题
--  作者:qq51837000
--  发布时间:2024/12/19 16:22:00
--  
上图就是“左导航”窗口的afterload事件代码,切换后权限没有变化,还是上一个用户的权限
[此贴子已经被作者于2024/12/19 16:29:43编辑过]

--  作者:有点蓝
--  发布时间:2024/12/19 16:31:00
--  
所以让您添加调试,调试查看每一行代码执行的结果
--  作者:qq51837000
--  发布时间:2024/12/19 16:43:00
--  
找到原因了,原来是开发者账号登录的