最近在做有关权限设计的模块,打算基于角色的访问控制RBAC (Role-Based Access Control) ,我已经设计好了三张表:人员,角色,权限。人员放到角色里,然后给角色赋权。以上是基本的思路。我想请教一下,当打开一个页面(aspx)时候,比如增加、删除、修改三个按钮,如何根据这三种权限来控制这三个按钮的可见与不可见。因为在程序设计的时候,有很多页面都有这样三个按钮,如果才可以做的比较通用呢?谢谢各位了!
解决方案 »
- NHibernate的 ICriteria条件查询问题,外键为null时查询不出数据了为什么?
- 按键盘左右键浏览到服务器上的图片
- ?????偶尔出现的问题,大家帮我提示提示,大概是什么原因?????
- 请教大家:Asp.net中iframe显示不出来怎么解决
- UrlRewriter地址转换后,相对路径的问题
- 如何在NET中读取和写入注册表
- 第二次发问:第一次登陆提示验证码(也就是session)失效,第二次却可以正常登陆,求解!!
- 急!讨厌的动态添加用户控件的问题
- 請問如何實現如下功能,我是菜鳥,清高手指教,一旦解決立刻給分
- 用户控件的问题,急!在线等待。。。。
- 用js 取出DropDownList 选中项的value 和 text,
- csdn是怎样运行xml作论坛的
如:
<uc1:Button id="btnEdit" Active="Edit" runat="server" Text="编辑"/>
然后在写一个公有的判断方法就OK了,跟据Role_Edit 进行操作如BasePage
------------------
不会,以前winform很多控件都是这么做的,你可以自己试试,看看速度会不会慢,我只是提供这个思路,你也可以把当前用户的权限保存到session,然后直接在重写button的类中去判断session中的权限和tag比较,这样就不用遍历控件了,不过需要在你的重写button的类能访问到你当前用户的权限
每个页面定义一个变量,对应你的权限
如:
private Enum m_Page_Module_Function = EnumModelFunction.UserInfoSearch;
对应用户资料查询
UserInfoSearch 对应模块ID =10,
然后你就判断就可以了
public string Tag
{
set
{
string str = "1"; // 这里取当前用户的权限,这里假设是1
tag = value;
if(tag.IndexOf(str)==-1){
// 找不到权限1,说明该用户没有执行该button的权限,
// 隐藏
this.Visiable = false;
}
}
}