在webconfig asp.net和站点地图中配置角色

时间:2012-12-13 20:21:40

标签: asp.net sitemap roles

我的Sitemap包含角色执行功能。让我一步一步解释。登录UserA有RoleXYZ。在myFolder中,我有两个资源:file1,file2。我对此部分的web.config配置:

<location path="myFolder">
  <system.web>
   <authorization>
    <allow roles="RoleXYZ, RoleABC" />
    <deny users="*" />
   </authorization>
 </system.web>
</location>

我的站点地图:

<siteMapNode title="$Resources:Web.sitemap, Home" url="~/Home.aspx">    
   <siteMapNode title="Process"  roles="RoleXYZ, RoleABC">
      <siteMapNode title="Add Customers" url="~/myFolder/file1.aspx" roles="RoleXYZ"> </siteMapNode>
      <siteMapNode title="Add Partners" url="~/myFolder/file2.aspx" roles="RoleABC"> </siteMapNode>
   </siteMapNode>
   <siteMapNode title="ContactUs" url="~/ContactUs.aspx"></siteMapNode>
 </siteMapNode>

由于UserA只有一个角色RoleXYZ,通常他不会看到siteMapNode(添加合作伙伴)。

任何想法,问题出在哪里?

1 个答案:

答案 0 :(得分:0)

“角色”属性只能用于扩大某个siteMapNode的可见性,绝不限制它。 MSDN文档充其量是误导性的。

另外,请记住您的配置不安全:角色RoleXYZ和RoleABC的用户都可以通过在浏览器中键入其地址来访问这两个页面。您应该限制对Web.config中各个页面的访问,而不是尝试使用“roles”属性。