软件快开发完了,现在要考虑这个问题,设置权限,可是没有一点思路,请教各位大虾,如果有做过类似的东西,给指点一下。谢谢了。如果那位有类似的源代码,请提供一下,好么?多谢!!!

解决方案 »

  1.   

    首先定义N多种权限,对应一些菜单。
    做一个 用户-权限 对应表。超级用户可以定义其他用户的权限。保存在数据库里。
    用户登陆时,将他的权限从数据库里读出保存在一个数组里。
    用户点击菜单时,判断它是否有这个菜单的权限,没有的话弹出错误警告
    权限定义界面:
    http://zy954.3322.org/2.jpg
      

  2.   

    首先在用户信息表里面高一个“权限”的字段,然后登录时再根据权限来来判断哪此操作可用哪此操作不可用,假如你是用菜单或是用按钮的话就是判断哪些菜单或按钮的Visible或Enabled就行啦,我就是这样做的,我在我做的那个系统里面是分了五级权限分别是:浏览、添加/修改、删除、系统管理、备份。
      

  3.   

    建议定义一个登录用户表,把登录用户和其它员工分开。
    数据库中权限字段用一个varchar类型的,具体这个字段多大值根据你的软件权权限设定,管家婆中设定为varchar(500)
    另外数据库中应添加一个权限组的表,先在程序中做权限组功能,再把登录用户添加到相应的权限组中。
    每个权限可用0和1表示,当然也可以用空格,管家婆好像用的就是空格和1。
      

  4.   

    用0和1来表示,其它就是在在其序中控制当前的位置,例:
    mod1:00011110010mod2:01001010......
    先判断你在的大模块,在判断你所在的小模块
      

  5.   

    在用户表中添加n个字段权限,,用Y与N表示也可以,或用0与1表示也可以..随你~~~
      

  6.   

    在数据库里建一个用户权限表(user_function)和用户表(user)关联
    用户权限表(user_function)的字段,id(自动编号),userid(关联用户表使用),function(存放菜单关键字)
    用户登陆时,取用户id(userid)
    先设置所有菜单不可用
    tmprs.open "select * from user_function where userid = '" & userid & "'",gcn,adopenkey
    if tmprs.RecordCount > 0 then
        select case tmprs.fields("function")
            case 功能名称
                 功能.visible = true
            case 功能名称
                 功能.visible = true
            case 功能名称
                 功能.visible = true
        ..............................
       end case
    end if
      

  7.   

    http://www.netyi.net/in.asp?id=lockllb//大量的教程!几乎包含了有关于计算机的一切!!!!!!
      

  8.   

    做一个权限表罗用用户ID号和用户表连接起来,
    登陆后 用SQL查询权限表
      

  9.   

    菜单(用数组)
    单据处理(menu1,0)  数据分析(menu1,1)
         生成送货单(menu2,0)      明细分析(menu3,0)
         修改送货单(menu2,1)      汇总分析(menu3,1)
    Public Sub sccd()  '根据权限生成菜单
    On Error GoTo error1
    Dim m As Integer, n As Integer
    dqqx = ""
    For m = 1 To 5
        dqqx = Mid(qx, m, 1)
        If dqqx = "1" Then
           menu1(m - 1).Visible = True
        Else
           menu1(m - 1).Visible = False
        End If
    Next m
    n = Len(qx)
    For n = 6 To 8
        dqqx = Mid(qx, n, 1)
        If dqqx = 1 Then
          menu2(n - 6).Visible = True
        Else
           menu2(n - 6).Visible = False
        End If
    Next n
    For n = 9 To 13
        dqqx = Mid(qx, n, 1)
        If dqqx = 1 Then
           menu3(n - 9).Visible = True
        Else
           menu3(n - 9).Visible = False
        End If
     Next n
     
     
     For n = 14 To 19
        dqqx = Mid(qx, n, 1)
        If dqqx = 1 Then
           menu4(n - 14).Visible = True
        Else
           menu4(n - 14).Visible = False
        End If
     Next n
     
     For n = 20 To 23
        dqqx = Mid(qx, n, 1)
        If dqqx = 1 Then
           menu5(n - 20).Visible = True
        Else
           menu5(n - 20).Visible = False
        End If
     Next n
     
     For n = 24 To 27
        dqqx = Mid(qx, n, 1)
        If dqqx = 1 Then
           menu6(n - 24).Visible = True
        Else
           menu6(n - 24).Visible = False
        End If
     Next n  qx为检索出的表中关于权限的记录(为0和1,例0111101110111)
    第一个for循环为第一级菜单及单据处理这一极的,m的最大值为这一级菜单数据的下限,其它类推,
    这种做法很简单,适合初学者,也很好判断,但是太死板,每次增加或是减少一个菜单都得改动源码和
    for循环中的取值