Foxtable(狐表)用户栏目专家坐堂 → 求助:关于使用SQL外部数据源的目录树形式授权的问题


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

主题:求助:关于使用SQL外部数据源的目录树形式授权的问题

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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
求助:关于使用SQL外部数据源的目录树形式授权的问题  发帖心情 Post By:2013/4/9 12:56:00 [只看该作者]

问题1:创建的Users表所使用的数据类型分别是
Name : nchar(10)
Group : nchar(10)
Password : nchar(20)
我在设计用户登录窗口时,遇到的问题是,输入正确的用户名及密码,永远都是提示密码错误.后来我发现 为密码框加足二十个字符时(空格),就成功登录了.
所使用的代码是:
Dim s1 As String = e.Form.Controls("Password").value
Dim s3 As String = s1.PadRight(20)
e.Form.Controls("Password").value = s3
以上代码意思就是:密码框所输入的字符只要不足20位时,则以空格形式加足20位.
-----------------------------------------------------------------------------------
所以,有没有什么办法,除去SQL数据中的空格,或者我应该使用什么数据类型,可以解决这个问题.
尽管以上问题我自己 已经 解决,


问题2:我现在想继续使用目录树形式授权的功能;但是总是提示我没有权限,也就是说,系统中,与用户表所进行的对比是无效的,
那么,我要不要在内部函数中修改以下代码:
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


请前辈们帮忙看看这代码,想想办法!!!

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/9 14:12:00 [只看该作者]

1.那是因为你外部数据库表的字段有问题.设置为nvarchar 即可.char是会有空白填充的. 或者你可以把得出来的数据先Trim() 一次.
2.没懂你的问题.


 回到顶部