Foxtable(狐表)用户栏目专家坐堂 → [求助]我设置的权限 登入提示不存在分组


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

主题:[求助]我设置的权限 登入提示不存在分组

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


加好友 发短信
等级:幼狐 帖子:189 积分:1346 威望:0 精华:0 注册:2014/11/25 16:22:00
[求助]我设置的权限 登入提示不存在分组  发帖心情 Post By:2015/3/24 14:32:00 [只看该作者]

我做了个授权表,内部函数代码如下

If User.Type <> UserTypeEnum.User Then ' 如果是开发者或者管理员
    Return True '则具备所有权限
End If


Dim dt As DataTable = DataTables("授权")
Dim dr As DataRow
'首先判断某个授权用户是否包含此用户或此用户所属的分组之内
dr = dt.Find("分组 = '" & args(0) & "' And 权限 Is Null" )
If dr Is Nothing Then
    MessageBox.show("不存在名为""" & args(0) & "分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If

If dr.IsNull("用户") = False Then
    Dim nms() As String = dr("用户").Split(",")
    '--------以下代码需要谨慎修改--------'
    For Each nm As String In nms
        If nm = _UserGroup OrElse nm = _UserName  Then '如果授权用户包括登录用户所属的分组或其用户名
            Return True '返回True
        End If
    Next
   
    '--------以上代码需要谨慎修改--------'
End If

 


'然后判断权限的授权用户是否包括此用户或此用户所属的分组
If Args(1) = "" Then
    Return False
End If
dr = dt.Find("分组 = '" & args(0) & "' And 权限 = '" & args(1) & "'")
If dr Is Nothing Then
    MessageBox.show("不存在名为""" & args(1) & "权限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("用户") = False Then
    Dim nms() As String = dr("用户").Split(",")
   
   
    '--------以下代码需要谨慎修改--------'
    For Each nm As String In nms
        If nm = _UserGroup OrElse nm = _UserName  Then '如果授权用户包括登录用户所属的分组或其用户名
            Return True '返回True
        End If
    Next
    '--------以上代码需要谨慎修改--------'
   
End If
Return False

 

导航栏的授权检测代码

Select Case e.Page.Name
    Case  "证件管理"
        Select Case e.Link.Name
            Case "证件登记管理"
                 If Functions.Execute("ShouQuan","证件管理","证件登记管理") Then
                 forms("证件登记管理窗口").show
                Else
                    MessageBox.show("您暂时没有权限查看!看看其他版块吧!")
                End If
我授权表有这个分组啊


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/3/24 14:37:00 [只看该作者]

计算机不会撒谎的,说不存在,就是不存在,只能是你代码中的分组名和实际的分组名并不匹配。

 

 

1、在数据表删除原来的分组,重新输入一次分组保存。

2、检查代码,确保两边的分组名完全一致。


 回到顶部