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



我的站点地图有一些角色执行。 让我一步一步地解释一下。 登录用户 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>

由于用户A只有一个角色RoleXYZ,因此通常他不应该看到siteMapNode(Add Partners)。

知道吗,问题出在哪里?

"Roles"属性只能用于扩大对某个siteMapNode的可见性,而不能限制它。MSDN 文档对此充其量是误导性的。

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

最新更新