none
Exibir 2o nível do menu, baseado em papéis RRS feed

  • Pergunta

  • Ola

    tenho um menu do ASp.net, baseado em um siteMap, como segue

    <siteMapNode title="" description="Principal" roles="*" > <siteMapNode title="Cadastros" roles="*" > <siteMapNode title="Funcionários" url="~/Cadastro/FuncionarioView.aspx" roles="Gestor" /> <siteMapNode title="Avaliados" url="~/Cadastro/AvaliadoView.aspx" roles="Gestor" /> <siteMapNode title="Grupo de Itens da Avaliação" url="~/Cadastro/AvaliacaoGrupoItemView.aspx" roles="Gestor" /> <siteMapNode title="Datas da Avaliação" url="~/Cadastro/AvaliacaoCicloView.aspx" /> <siteMapNode title="Competências" url="~/Cadastro/AvaliacaoItemView.aspx" /> </siteMapNode>
    <siteMapNode


    e um menu

    <asp:Menu ID="menu1" runat="server" DataSourceID="siteMapDataSource" Orientation="Horizontal"
                                SkipLinkText="" StaticEnableDefaultPopOutImage="False" DynamicEnableDefaultPopOutImage="False"
                                StaticDisplayLevels="2">
                                <StaticMenuStyle HorizontalPadding="2px" VerticalPadding="2px" />
                                <StaticMenuItemStyle ItemSpacing="4px" />
                            </asp:Menu>

    e a chamada no web.config

    <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
          <providers>
            <clear/>
            <add name="XmlSiteMapProvider" description="Default SiteMap provider." 
                 type="System.Web.XmlSiteMapProvider " 
                 siteMapFile="Web.sitemap"  
                 securityTrimmingEnabled="true"/>
          </providers>
        </siteMap>

    o problema é que ele exibe os papéis (roles), baseados apenas no primeiro nível do menu, e não no segundo nível.

    Aqui ==> (1o nível) <siteMapNode title="Cadastros"  roles="*"  > mostra todos os paéis
    mas aqui ==> (2o nível)  <siteMapNode title="Funcionários" url="~/Cadastro/FuncionarioView.aspx"  roles="Gestor"   /> deveria mostrar somente se a role (papel) fosse Gestor, mas sempre exisbe, independente do papel

    no web.config esta habilitado para permitir estes "cortes" dos menus --> securityTrimmingEnabled="true"

    pelo que vi na documentação, acredito que seja algo relativo a propriedade StaticDisplayLevels="2" do menu, que diz quantos níveis ele pode ter.

    Não achei nada a respeito de um cenário semelhante a este. apenas com um nível de menu. Alguma sugestão??

    Obrigado



    • Editado S4ndr0 segunda-feira, 15 de outubro de 2012 13:33
    segunda-feira, 15 de outubro de 2012 12:53

Todas as Respostas