我建了一个站点地图,想用站点地图里的角色来控制对页面的访问权限,
由于我是在membership中创建的用户和角色,在母版页加载的时候获取的角色名,<siteMapNode url="" title="用户管理"  description="" >
    <siteMapNode url="~/WebUI/Employees/UserCreate.aspx" title="添加用户"  description="" roles="Admin" />
    <siteMapNode url="~/WebUI/Employees/UserManager.aspx" title="查询用户"  description="" roles="Admin" />
</siteMapNode>
<siteMapNode url="" title="客户服务"  description="" >
   <siteMapNode url="~/WebUI/User/GuestComplaints.aspx" title="客户投诉"  description="" roles="user" />
   <siteMapNode url="~/WebUI/User/ComplaintsTreatment.aspx" title="投诉处理"  description="" roles="user"/>
</siteMapNode>
......在web.config中也禁用了匿名用户,<authentication mode="Forms">
     <forms loginUrl="~/Secure/login.aspx"/>
</authentication><authorization>     
   <deny users="?" />
</authorization>
现在的问题是无论用那种用户角色登录后都能访问全部页面,也就是站点地图的角色,没有起作用,
请问如何控制在站点地图里的角色对页面访问权限??
非常非常感谢!!!

解决方案 »

  1.   

     <siteMapNode url="" title="" description="">
             <siteMapNode url="~/WebUI/Employees/a.aspx" title="" roles="admin"></siteMapNode>
             <siteMapNode url="~/WebUI/User/b.aspx" title="" roles="user"></siteMapNode>
         </siteMapNode>
    <configuration>
             <system.web>
                 <authorization>
                     <allow roles="admin"/>
                     <deny users="*"/>
                 </authorization>
             </system.web>
         </configuration>
      目录user下web.config:
         <configuration>
             <location path="b.aspx">
                  <system.web>
                       <authorization>
                           <allow roles="user"/>
                           <deny users="*"/>
                       </authorization>
                  </system.web>
             </location>
         </configuration>
    一般通过角色,treview控制权限更简单,这种方式很少用
    参考