none
Esconder ou tornar invisivel os intens de menu de acordo com o papel de usuário..

    Question

  • Ola Pessoal boas a todos....

    Gostaria de de saber como faço para esconder os meus intens de Menu na barra de menu de acordo com o papel de usuário....de forma que fique visivel apenas para o usuario com permissão........

    Yumildo

    Wednesday, November 21, 2012 11:25 AM

Answers

  • pois então,

    Com roles, fica tudo mais fácil. Você está utilizando sitemap para o menu?

    Segue exemplo utilizando o sitemap para construir o menu:

    - Configuração no web.config do sitemap Provider. Você deve especificar a propriedade "securityTrimmingEnabled" para habilitar/desabilitar (visível/invisível) itens do menu de acordo com as roles dos usuários.

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

    Feito isso, no próprio web.config (dentro da sessão configuration), você especifica as permissões para um diretório qualquer ou arquivo. Dessa forma:

    <location path="MeuFolder/Sistema.aspx">
        <system.web>
          <authorization>
            <allow roles="Sistema" />
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>

    Dessa forma, estou informando que o arquivo "Sistema.aspx" não será acessado por ninguém a não ser o usuário que estiver na role "Sistema". Estando seu menu vinculado ao sitemap, o qual deve estar configurado como acima, os itens do próprio ficarão desabilitados automaticamente.

    • Marked as answer by YuBoy Thursday, November 22, 2012 1:36 PM
    Wednesday, November 21, 2012 12:20 PM
  • Você pode sim. Pode utilizar quantos sitemaps quiser. Basta adiciona-los no web.config como coloquei acima.
    • Marked as answer by YuBoy Thursday, November 22, 2012 1:36 PM
    Wednesday, November 21, 2012 12:26 PM
  • Então, cria um outro sitemap, adiciona a configuração dele no web.config, vincula seu menu a este sitemap e coloca as permissões para os folders que quer que o o "admin" e "manager" acessem. Dessa forma os itens do menu ficarão invisiveis automaticamente para os usuários sem permissão.

    • Marked as answer by YuBoy Thursday, November 22, 2012 1:36 PM
    Wednesday, November 21, 2012 12:42 PM

All replies

  • Você está usando as roles do asp.net? Como está sendo feito o login?

    Se estiver usando as roles do asp.net, você pode fazer de forma automática no web.config...

    Wednesday, November 21, 2012 11:45 AM
  • no sistema que desenvolvo atualmente tenho gera um SiteMap para cada usuário do sistema

    e logo após o usuário fazer o login eu atribuo o seu respectivo SiteMap.

    Wednesday, November 21, 2012 11:55 AM
  • Ola Marcos.. de fato estou usando as roles do asp.net e o login é feito de acordo cm a role de cada um....

    Eu consego fazer que cadao  usuario tenha acesso a sua área definida......mas tenho no meu menu os itens que não gostaria que tivesse visivel para os usuários sem permissão, embora se os que n têm se clicar nestes intens aparece uma mensagem de área restrita. Ma gostaria que esses intens de menu n aparecesse........

    Yumildo

    Wednesday, November 21, 2012 12:07 PM
  • Eu tenho uma tabela de opções e permissões assim só mostro as opções no menu que cada usuario tem direito, melhor que ficar escondendo ou liberando itens do menu.

    Junior

    Wednesday, November 21, 2012 12:19 PM
  • pois então,

    Com roles, fica tudo mais fácil. Você está utilizando sitemap para o menu?

    Segue exemplo utilizando o sitemap para construir o menu:

    - Configuração no web.config do sitemap Provider. Você deve especificar a propriedade "securityTrimmingEnabled" para habilitar/desabilitar (visível/invisível) itens do menu de acordo com as roles dos usuários.

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

    Feito isso, no próprio web.config (dentro da sessão configuration), você especifica as permissões para um diretório qualquer ou arquivo. Dessa forma:

    <location path="MeuFolder/Sistema.aspx">
        <system.web>
          <authorization>
            <allow roles="Sistema" />
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>

    Dessa forma, estou informando que o arquivo "Sistema.aspx" não será acessado por ninguém a não ser o usuário que estiver na role "Sistema". Estando seu menu vinculado ao sitemap, o qual deve estar configurado como acima, os itens do próprio ficarão desabilitados automaticamente.

    • Marked as answer by YuBoy Thursday, November 22, 2012 1:36 PM
    Wednesday, November 21, 2012 12:20 PM
  • Ola Pablo.. tenho usado SiteMap sim mas para as outra funcionalidade na minha aplicação pr isso axo k já n posso usa-lo pra o k pretendo... thankssssssss

    Yumildo

    Wednesday, November 21, 2012 12:24 PM
  • Você pode sim. Pode utilizar quantos sitemaps quiser. Basta adiciona-los no web.config como coloquei acima.
    • Marked as answer by YuBoy Thursday, November 22, 2012 1:36 PM
    Wednesday, November 21, 2012 12:26 PM
  • Ola Marco...eu tenho usado o SiteMap com algumas funcionalidade que aparecer quando o usuario logar no sistema..... depois tenho a minha barra de menu com os seus respetivos itens e nestes tem algumas partes que só o Admin e Manager podem aceder... tenho feito isto..mas gostaria que estes intens ficassem mesmo invisivel apra os usário normal. 

    Yumildo

     
    Wednesday, November 21, 2012 12:30 PM
  • Então, cria um outro sitemap, adiciona a configuração dele no web.config, vincula seu menu a este sitemap e coloca as permissões para os folders que quer que o o "admin" e "manager" acessem. Dessa forma os itens do menu ficarão invisiveis automaticamente para os usuários sem permissão.

    • Marked as answer by YuBoy Thursday, November 22, 2012 1:36 PM
    Wednesday, November 21, 2012 12:42 PM
  • Pessoal já funcionou assim cmo sugerio o Marcos....Brigado a todos por help....

    Yumildo

    Thursday, November 22, 2012 1:37 PM