Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
780
Assunto : ASP.NET
Titulo: Otimizando a validação de permissões

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



No ASP.NET podemos facilmente verificar pelo código se o usuário encontra-se em um determinado grupo e desta forma determinar o que o usuário pode visualizar, através da instrução context.user.isinrole("nomedogrupo")

Se desejamos verificar apenas um grupo, isso não é problema. Mas se desejamos verificar vários grupos, executar context.user.isInRole várias vezes seguidas se torna um problema.

Quando desejariamos verificar vários grupos ?

Quando a tela tem grande complexidade e o acesso aos objetos de tela depende do usuário estar em diferentes grupos.

Por que isso é um problema ?

Porque cada vez que chamamos o isInRole o provider de grupos é disparado e recupera os grupos do usuário. Essa recuperação tem um certo peso, dependendo do provider pode significar acesso a banco.

Como Resolver ?

Ao inves de utilizarmos o isInRole, podemos utilizar a classe Roles, que fica em System.Web.Security. Assim podemos utilizar Roles.GetRolesForUser() para obter os grupos do usuário, estaremos fazendo esta obtenção uma única vez.

Este método nos devolve um array de strings, podemos fazer laços para trabalhar com ele ou até mesmo converte-lo em um arraylist (com o método addRange do ArrayList) e utilizar o indexOf para pesquisar o ArrayList.



Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br