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 に答える