一般简单的设计是:一个人员表,一个角色表,一个权限表,差不多就满足需求了,你要的角色管理很复杂吗?有什么特殊要求
就跟你说的差不多,不是很复杂,应为没弄过,想自己学学,求源代码!
@小银光:
没有源代码。(*^__^*)
人员管理窗体:功能为人员的增加、删除、修改、赋予角色(在角色列表中选择一个)
角色管理窗体:功能为角色的增加、删除、修改、选择人员(从客户列表中选择多个人员),赋值权限(从权限列表中选择多个权限)
权限管理窗体:功能为角色的增加、删除、修改
人员和角色我觉得N:1比较好,有的人设计成N:N
当执行某个操作时,根据操作代码(权限的唯一标识),从数据库中查询当前用户是否具有该权限,然后进一步判断是否能够进行操作
权限管理很复杂的,有很多开源项目做的不错 可以研究下
能不能给个案例!
推荐你看看这个开源项目。
Anycmd是一个.net平台的完全开源的,完整支持RBAC的(包括核心RBAC、通用角色层次RBAC、静态职责分离RBAC和动态责任分离RBAC),将会支持xacml的通用的权限框架、中间件、解决方案。完整的RBAC规范所定义的能力只是anycmd所提供的能力集的一个子集。
权限系统干了什么?
给出一套方法,将系统中的所有功能标识出来,组织起来,托管起来,将所有的数据组织起来标识出来托管起来, 然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端是权限引擎。权限引擎所回答的只是:谁是否对某资源具有实施 某个动作(运动、计算)的权限。返回的结果只有:有、没有、权限引擎异常了。