1

我想过滤web.sitemap使用OnDataBinding事件的条目,但它不执行。我想要一些功能,它允许我验证用户的角色是否可以访问特定的功能。

我创建了带有函数列表和链接表的表来构建权限。我将允许管理员添加新角色并为他们提供一组允许的功能,而不是使用看起来不够灵活的 IsInRole 来满足我的需求。

所以,我添加了以下内容:

<asp:sitemapdatasource ID="SiteMapMenuSrc" runat="server" ShowStartingNode="false" OnDataBinding="MainMenu_DataBinding" SiteMapProvider="SiteMap1"></asp:sitemapdatasource>

SiteMap 是 web.config 条目的位置:

<add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>

看来,那MainMenu_DataBinding不叫。我没有找到任何合适的解释。我的代码有什么问题?

4

1 回答 1

1

那是因为SiteMapDatasource它只是一个数据源控件,它自己什么都不做

您实际上必须使用它,例如:

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
于 2012-07-27T11:06:35.093 回答