关于角色权限管理的讨论

微醺_zZ 2010-08-04 09:26:25
我这里有一套关于角色权限管理的方案,但领导说这套方案还有一些缺陷,希望各位经验丰富的哥们们帮忙看看,给点意见。

大体的表结构:
A、角色摘要表 记录角色名称
B、角色明细表 A表的子表,记录菜单组、程序模块、模块权限等信息
C、菜单组 记录菜单名称
D、菜单组明细 C表的子表,记录类型等(比如:直接对应程序模块或还有子菜单)
E、程序模块 记录程序模块信息及【所对应的类型为模块的菜单组明细】(与D表做关联用)
F、模块权限 记录某一模块上的权限(如:新建、修改、删除、审核等,此表也可叫做Action)
F、页面按钮 记录所有页面上的按钮及按钮类型(如:链接或触发)
G、按钮权限 与 F 表关联 记录页面按钮的相关权限

以上都是针对某一角色的处理。
需求陈述
1、将权限一致的人员编入同一角色,然后对该角色进行权限分配。
2、角色可以创建子角色,默认权限<=父角色(权限委派)

希望各位能根据我以上的陈述给出自己的理解意见,最好不要再给我什么链接,我已经看了不少了比如《实现业务系统中的用户权限管理--设计篇》


谢谢各位
...全文
298 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
微醺_zZ 2010-08-05
  • 打赏
  • 举报
回复
恩,刚刚想到了一个方案
就是在用户与角色关联的同时,将角色对应的权限同时添加到一个用户与权限直接关联的表
这样就可以解决日后针对某一用户的权限临时变更

不知道这样的方案合不合理,弊端在哪
微醺_zZ 2010-08-05
  • 打赏
  • 举报
回复
请问:# wanghui0380 (放歌) ,我没有理解权限的多态,多态在权限管理中体现在哪呢
微醺_zZ 2010-08-05
  • 打赏
  • 举报
回复
这个帖子就不能翻个页么,设想阶段怎么想都可以啊,不要吝惜你们的思想
Manonloki 2010-08-04
  • 打赏
  • 举报
回复
囧 设计的时候给个备用临时权限吧……
单独赋予 别走用户组了……与主权限并行处理……大不了再给个过期时间……
wanghui0380 2010-08-04
  • 打赏
  • 举报
回复
google:“你必须知道的.net”,然后看net中有关对象在内存的中分布情况

实际上微软的对象实现机制就是权限实现机制的最佳参考

看看对象本身 继承,封装,多态

再看看权限,权限继承,权限封装,权限多态-----何其相似

在看看对象的内存分布------元数据区,方法表区,对象继承关系区,如果你把内存看成一个数据库,那么微软已经把所有的关系都展现给你了

醒子宇 2010-08-04
  • 打赏
  • 举报
回复
不好意思··我一般都数据库直接定死···1 管理员··2 普通用户·· 囧····
微醺_zZ 2010-08-04
  • 打赏
  • 举报
回复
我没有明白你的拒绝权限的意思
为什么要设计拒绝权限呢
如果这个用户没有这个权限,我不赋给他就行了,拒绝是什么意思
ycg_893 2010-08-04
  • 打赏
  • 举报
回复
设计成授权可以直接授给用户与角色,用户要以属于多个角色(如角色1有A权,角色2有B权,用户属于1和2,就具有了A与B权,同时若再授权的用户C权,这样就具有了A、B、C权),当然要再复杂和高级一些,在设计时还可以添加拒绝权限,这种适合一组用户具有差不多的权限,只是个别的权限要少一些,这时对个别再加入拒绝权限就行了,不过在设计与实现权限上会增加难度。
louti 2010-08-04
  • 打赏
  • 举报
回复
我帮你顶 你给我分 好不好
微醺_zZ 2010-08-04
  • 打赏
  • 举报
回复
沉了...大家都去吃饭了么
等着你们吃饱了再回复
微醺_zZ 2010-08-04
  • 打赏
  • 举报
回复
补充一个问题:比如说权限委派
领导出差,要把某一项权限赋予A员工,A员工所属的A角色下有很多员工
我不能仅仅因为要给他做一个权限委派而去修改A角色,此时我应该怎么去做
微醺_zZ 2010-08-04
  • 打赏
  • 举报
回复
如果不精确到按钮,那针对每个角色是不是都要在业务逻辑类里写一套控制按钮权限的代码
那我的角色不就成了写死的了
如果我新建一个角色,这个角色所有的按钮权限拿出来与页面的所具有的按钮权限一对比就可以判断权限了
我可能只需要些一个查询角色权限的通用方法就可以了
wuyq11 2010-08-04
  • 打赏
  • 举报
回复
q107770540 2010-08-04
  • 打赏
  • 举报
回复
没必要精确到页面每个按钮

此种处理可放到业务逻辑层来代码处理
微醺_zZ 2010-08-04
  • 打赏
  • 举报
回复
在我的脑子里,权限就是一个树形列表,用checkBox的
选中就有权限,取消勾选就去掉权限
你说的那个拒绝权限是不是还要给他做一套对应的拒绝的权限?
那不是很麻烦
还有人参与讨论么?
ycg_893 2010-08-04
  • 打赏
  • 举报
回复
拒绝权限,实际上一windows一样,
如:有一个角色具有A、B、C、D、E、F权限。
用户1与用户2都属于这个角色,但用户2不能有F权限,这样的话用户2添加一个拒绝权限F,这样的话他们都是同一个角色,但用户2就比用户1少一个F权限,以后你给他们所属的角色增加任何权限,两个都会同时拥有,但用户2始终比用户1少F权限。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧