1

我的站点地图与角色执行有关。让我一步一步解释。登录用户 A 具有 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(添加合作伙伴)。

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

4

1 回答 1

0

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

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

于 2013-04-12T11:53:11.703 回答