以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]目录树形式授权出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=68839)

--  作者:方丈
--  发布时间:2015/5/26 9:51:00
--  [求助]目录树形式授权出错
请教,用自定义用户管理,参考系统 目录树形式的授权 出现以下错误,不知何故?
[此贴子已经被作者于2015/5/26 22:21:52编辑过]

--  作者:大红袍
--  发布时间:2015/5/26 9:53:00
--  
 授权代码写得有问题,贴出你写的代码。
--  作者:Bin
--  发布时间:2015/5/26 9:53:00
--  
代码有误, 把字符串 赋值给数值列,或者数值类型变量了.  或者用于对比
--  作者:方丈
--  发布时间:2015/5/26 9:54:00
--  
If _UserName <> 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

--  作者:大红袍
--  发布时间:2015/5/26 9:58:00
--  

 这句话去掉

 

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


--  作者:Bin
--  发布时间:2015/5/26 9:59:00
--  
If _UserName <> UserTypeEnum.User Then \' 如果是开发者或者管理员
    Return True \'则具备所有权限
End If

这个不可以这么判断哦.


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

--  作者:方丈
--  发布时间:2015/5/26 22:22:00
--  
谢谢