【发布时间】:2014-09-18 07:38:58
【问题描述】:
首先我要说的是我所拥有的东西 - 我只是不喜欢它。
我有一个用于导航栏的 web.sitemap。一些节点可供所有人访问,其中一些已分配角色(这样该节点就不会显示给无法访问它的用户)。
即<siteMapNode url="~/adminpage.aspx" title="admin" roles="domain\Administrators"/>
然后,在我的 web.config 中,我有这样的位置元素:
<location path="adminpage.aspx">
<system.web>
<authorization>
<allow roles="domain\Administrators"/>
<deny roles="*"/>
</authorization>
</system.web>
</location>
除此之外,某些页面还具有根据角色显示或隐藏的超链接,如下所示:
myHyperlink.Visible = Roles.IsUserInRole(@"domain\Administrators");
所有这些都可以正常工作 - 但是......这似乎有点荒谬。有什么方法可以利用站点地图和 Roles.IsUserInRole 在我的 Web.config 中建立的权限?基本上,我试图防止在 435234 个不同的地方拥有相同的权限描述。
我尝试使用 Casses 解决方案在站点地图文件中添加嵌入代码,该代码将使用网络配置中的设置 - 但这不起作用(因为您不能将嵌入代码放入站点地图文件中)。
【问题讨论】:
标签: c# asp.net web-config web.sitemap role-manager