关于我的一个asp.net程序权限解决方案:
1.定义好角色,模块,操作的标准命名,并作为三个数据库表。
2.规定页面按扭的标准命名方法:操作+模块,如addProduct
3.在httpMode里判断用户是否有权限访问该页(该权限就增删改查中的查)
4.定义好页面基类,在页面基类的prerender方法里遍历该页所有操作控件(主要是button,imgebutton,linkbutton),
然好解析该控件名,如addProduct,解析开来,即是要该会员是否能对Product模块进行添加操作,如此根据该会员的
角色,从数据取出相应权限列表,即可判断是否有权,因而该按钮是否可显示即可明了。
(此方案缺陷可能是遍历页面找按钮控件的时间比较长)
public class BasePage:System.Web.UI.Page
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender (e);
foreach(Control ob in this.Controls[1].Controls)
{
if(ob is Button)
ob.Visible=false;
}
}
}