有关应用系统的权限管理的方法设计!给点参考意见!(70分)

  • 主题发起人 主题发起人 jackl
  • 开始时间 开始时间
J

jackl

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在做一个系统的权限管理,我现在可以实现了对菜单级别的权限控制!
但是我现在还想实现到对一个Form中的按钮控制,我现在采用的方法是Form继承的方法!
但是好像效率不是很高,所以我想问问各位大侠:有没有更好的实现方法!如果合理的方案采用,
还会给更高的分!谢谢!
 
你说的其实就是ACL管理。
ACL = Access Control List.其实这是一个非常简单的模型。
ACL中的三个核心概念是User, Role ,Resource.
在一个数据库(或者是xml文件,文本配置文件,或者是LDAP树中)保存: User和Role之间N:N的
关系;Role到Resource之间也是N:N的关系,这个关系还要包含一个访问级别。

这样,在写程序的时候,为每一个资源(按钮,菜单等等)都要在ACL配置表中增加控制项,
然后使用如下结构:
this.hidden := acl.havePrivilege(resource)
显然,为每一个资源都如此写程序是相当繁琐的,既然你是用delphi,当然可以采取一些特定的优化。
一个方法就是,从TButton继承出TACLButton,这个Button拥有一个resource属性。从TForm继承一个
TACLForm出来,这个Form在onCreate的时候自行根据当前用户的权限来控制是否允许TForm容纳的TACLButton和
TACLMenu之类显示。

 
to 曹晓钢:
你所说的这种方法和我现在采用的继承form的思路是一样的!我现在想问问各位有没有更好的方法!
 
后退
顶部