【问题标题】:How do I filter nodes of TreeView and Menu controls with sitemap data sources based on user permissions?如何根据用户权限使用站点地图数据源过滤 TreeView 和 Menu 控件的节点?
【发布时间】:2010-09-07 04:45:22
【问题描述】:

我正在使用 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"

这是否只处理显示问题?还是强制执行此类页面权限?

【问题讨论】:

    标签: asp.net forms-authentication sitemap


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

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

      如果您想要有关如何实现基于角色的身份验证的教程,请查看来自4GuysFromRolla 的教程。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-22
          • 2014-06-25
          相关资源
          最近更新 更多