日期:2014-05-18  浏览次数:20414 次

页面内部权限控制
最近在做有关权限设计的模块,打算基于角色的访问控制RBAC   (Role-Based   Access   Control)   ,我已经设计好了三张表:人员,角色,权限。人员放到角色里,然后给角色赋权。以上是基本的思路。

我想请教一下,当打开一个页面(aspx)时候,比如增加、删除、修改三个按钮,如何根据这三种权限来控制这三个按钮的可见与不可见。因为在程序设计的时候,有很多页面都有这样三个按钮,如果才可以做的比较通用呢?

谢谢各位了!

------解决方案--------------------
写一个CustomeButton类,继承自Button,添加一个属性,即权限标识符属性:然后跟据这个东西 判断是否有权限
如:
<uc1:Button id= "btnEdit " Active= "Edit " runat= "server " Text= "编辑 "/>
------解决方案--------------------
可以重写button,加个tag属性。

不同的按钮根据不同权限设置tag属性,不如but允许3个权限(1,2,3),设置tag= "1|2|3 "

然后系统所有页面的.cs类继承1个同1个基类PageBase,在PageBase中取当前用户的权限,比如该用户有权限1,然后循环取所有页面中的button,并跟button中的tag属性判断是否有1个的,有的则显示,没有的则隐藏。

这个方法通用,只需在PageBase写代码就OK
------解决方案--------------------
BearRui 的想法不错,不过遍历的方法是否在效率上有影响,值得商榷