如何根据用户权限使用站点地图数据源过滤TreeView和Menu控件的节点?

时间:2008-08-28 21:04:02

标签: asp.net forms-authentication sitemap

我正在使用ASP.NET Login ControlsForms Authentication获取ASP.NET Web应用程序的成员资格/凭据。我正在使用site map进行网站导航。

我使用SiteMapDataSource填充了ASP.NET TreeView和Menu导航控件。但是,非管理员用户可以看到禁止管理员的页面。


  

Kevin Pang 写道:

     

我不确定这个问题是怎么回事   与您的other question ...

不同

另一个问题涉及分配和维护权限。

这个问题只涉及导航的介绍。特别是具有站点地图数据源的TreeView和Menu控件。

<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" />
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="False" />

  

Nicholas 写道:

     

在站点地图中添加role =“SomeRole”

这只能处理显示问题吗?或者强制执行此类页面权限?

3 个答案:

答案 0 :(得分:1)

我必须在web.config文件中将securityTrimmingEnabled设置为“true”。

<?xml version="1.0"?>
<configuration>
    ...
    <system.web>
        ...
        <siteMap defaultProvider="default">
            <providers>
                <clear/>
                <add name="default"
                    type="System.Web.XmlSiteMapProvider"
                    siteMapFile="web.sitemap"
                    securityTrimmingEnabled="true"/>
            </providers>
        </siteMap>
        ...
    </system.web>
    ...
</configuration>

答案 1 :(得分:1)

我不确定这个问题与你的other question有什么不同,但无论如何我都会尝试回答它。

如果您需要有关如何实施基于角色的身份验证的教程,请查看4GuysFromRolla中的一个。

答案 2 :(得分:1)

securityTrimmingEnabled =“true”适用于具有限制权限的配置文件的内部页面,您还可以在站点地图中添加role =“SomeRole”以覆盖显示机制,如果您有外部站点的菜单项,这将非常有用。

相关问题