Вопрос

Я хотел бы отфильтровать записи из 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 не называется.Подходящего объяснения я не нашел.Что не так с моим кодом?

Это было полезно?

Решение

Это потому что SiteMapDatasource это просто контроль источника данных он ничего не делает сам по себе

Вам действительно нужно его использовать, например:

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top