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

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

How do I filter nodes of TreeView and Menu controls with sitemap data sources based on user permissions?

我将ASP.NET登录控件和表单身份验证用于ASP.NET Web应用程序的成员身份/凭证。 我正在使用站点地图进行站点导航。

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

Kevin Pang wrote:

I'm not sure how this question is any
different than your other question…

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

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

1
 

Nicholas wrote:

add role="SomeRole" in the sitemap

那只能解决显示问题吗? 还是强制执行此类页面权限?


securityTrimmingEnabled =" true"适用于具有配置文件限制权限的内部页面,您还可以在站点地图中添加role =" SomeRole"来避免显示机制,如果您有指向外部站点的菜单项,这将很有用。


我不确定这个问题与您的其他问题有什么不同,但是我将尽力回答。

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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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>


推荐阅读