Frage

Ich möchte Einträge filtern aus web.sitemap verwenden OnDataBinding Ereignis, aber es wird nicht ausgeführt.Ich hätte gerne eine Funktionalität, mit der ich überprüfen kann, ob die Rolle des Benutzers Zugriff auf eine bestimmte Funktion hat.

Ich habe eine Tabelle mit einer Liste der Funktionen und einer Verknüpfungstabelle zum Erstellen von Berechtigungen erstellt.Ich werde dem Administrator erlauben, neue Rollen hinzuzufügen und ihnen eine Reihe zulässiger Funktionen zu geben, anstatt IsInRole zu verwenden, was für meine Anforderungen nicht flexibel genug erscheint.

Also habe ich Folgendes hinzugefügt:

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

Wobei SiteMap der web.config-Eintrag ist:

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

Es scheint, dass MainMenu_DataBinding wird nicht aufgerufen.Ich habe keine passende Erklärung gefunden.Was stimmt mit meinem Code nicht?

War es hilfreich?

Lösung

Das ist, weil SiteMapDatasource ist nur ein Datenquellenkontrolle es macht nichts von alleine

Sie müssen es tatsächlich verwenden, zum Beispiel:

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top