2012-07-24 63 views
0

我执行我的web应用程序定义授权的角色定义的接入系统web.config文件,是这样的:角色定义的访问和动态角色定义

<location path="myPage.aspx"> 
    <system.web> 
     <authorization> 
      <allow roles="MY_ROLE" /> 
      <deny roles="*" /> 
     </authorization> 
    </system.web> 
</location> 

而在myPage.aspx我用了很多的if小号为每个角色定义剖面图可见性。

我的角色结构是静态的,所以我不应该对这个实现有特别的问题,但是如果我的角色是动态定义的并且有人可以随时添加或删除角色呢?

我的执行不正确?我是新来的这个问题,所以我想知道是否有一种常见的解决方法?

回答

0

我实现动态的基于角色的可视性的一种方式是对我使用的服务器控件进行子类化,并创建具有分配给自己的角色的自定义控件(TextBox,Label,PlaceHolder,Panel等)。当页面呈现时,这些控件检查他们的角色与登录用户的角色,并且基于该检查可见或不可见。

每个控件都有一个默认角色设置,因此不必为每个控件提供信息,除非它的角色与默认值不同。

这种方法真的让我的代码隐藏文件更加混乱。而且很容易维护。

+0

不错的建议。谢谢! – davioooh 2012-08-24 13:14:24