Pregunta

Me gustaría filtrar las entradas de web.sitemap usando OnDataBinding evento, pero no se ejecuta.Me gustaría tener una funcionalidad que me permita verificar si el rol del usuario tiene acceso a una función en particular.

Creé una tabla con una lista de funciones y una tabla de enlaces para crear privilegios.Voy a permitir que el administrador agregue nuevos roles y les daré un conjunto de funciones permitidas en lugar de usar IsInRole, que no parece lo suficientemente flexible para mis necesidades.

Entonces, agregué lo siguiente:

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

Donde SiteMap es la entrada web.config:

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

Parece que MainMenu_DataBinding no se llama.No he encontrado ninguna explicación adecuada.¿Qué hay de malo en mi código?

¿Fue útil?

Solución

Eso es porque SiteMapDatasource es solo un control de fuente de datos no hace nada por si solo

Realmente tienes que usarlo, por ejemplo:

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top