我正在我的网络应用中实现角色定义的访问系统,在web.config
文件中定义授权,如:
<location path="myPage.aspx">
<system.web>
<authorization>
<allow roles="MY_ROLE" />
<deny roles="*" />
</authorization>
</system.web>
</location>
在myPage.aspx
中,我使用了很多if
来定义每个角色的部分可见性。
我的角色结构是静态的,所以我不应该对这个实现有特殊的问题,但如果我的角色是动态定义的,有人可以随时添加或删除角色怎么办?
我的实施不正确吗?我是这个问题的新手,所以我想知道是否有一种常用的方法来解决它?
答案 0 :(得分:0)
我实现基于角色的动态可见性的方法是对我使用的服务器控件进行子类化,并创建自定义角色的自定义控件(TextBox,Label,PlaceHolder,Panel等)。呈现页面时,这些控件检查了他们的角色与登录用户的角色,并且基于该检查是否可见。
每个控件都有一个默认角色设置,因此不必为每个控件提供信息,除非它的角色与默认角色不同,当然。
这种方法确实使我的代码隐藏文件更加简洁。并且很容易维护。