日期:2014-05-20  浏览次数:20438 次

有关权限管理的一个问题
我知道模块,用户,角色之间的关系.我的控制粒度只到页面.
有以下几点不是很明白!
大侠们的模块是否就是菜单?
模块我想做成可以添加,修改,删除.那么页面怎么去对应所属的模块呢?打开时怎么判断该用户是否有浏览该页面的权限?

有什么好的方法??

------解决方案--------------------
1. 菜单不一定是模块,菜单下可以有一个或多个模块
2. 每个模块对应一个编辑页即可
3. 至于有没有权限浏览页面,就看是什么角色了,不同的角色在数据库中应该有不同的标志吧,把这个标志取出,根据标志显示或隐藏浏览按钮(添加、编辑、删除等)
------解决方案--------------------
可以看看dottext
------解决方案--------------------
建议楼主看看RBAC(Role Based Access Control)的文章
即基于角色的访问控制
大体的思路是:
为用户划分角色,通俗点说叫分组
为角色分配许可,通俗点说叫权限
定义许可操作

1.用户表
用户id

2.角色表
角色id

3.许可表
id 描述

4.用户角色关系表 // 多对多关系 所以要用个关系表
用户id
角色id

5.角色许可关系表 // 多对多关系 所以要用个关系表
角色id
许可id

授权工作在以上表内完成
当你某个模块/页面需要验证时
检查当前用户所属角色是否包含相应的许可
User.Role.Permissions.Contains(权限ID); // 比如定义好了打开此页面需要ID为25的权限
那就是判断
if (User.Role.Permissions.Contains(25))

另外一种方式 更细化的
就是把许可的具体信息写入数据表
记录
谁 对 谁 可以 做什么
这样可以运行时动态授权


你后面的页面如何对应模块问题
你就在需要的页面前加权限判断即可
不用专门用个什么法把页面归到什么模块下
------解决方案--------------------
回:假如我新建了一个模块,有几个页面要放到该模块下面,该怎么实现??
你所谓的模块是什么概念
在ASP.NET网站里,我建议你就用文件夹来归类即可
如果你是把逻辑功能单独封装,那就用项目,相当于一个网站带多个类库的方式
但是页面也不能放到类库项目里
还是要用文件夹来分类
------解决方案--------------------
mark下,希望更多的想法贴出来!
------解决方案--------------------
整好遇到此问题~学习~~
------解决方案--------------------
http://www.cnblogs.com/Roping/archive/2007/02/13/649161.html
------解决方案--------------------
不错 ..支持.
------解决方案--------------------
mark