none
Nivel de permissão do Usuário - Como fazer.. RRS feed

  • Pergunta

  • Olá srs, bom dia!

     

    Meu nome é Kelvin, sou programador .NET WF e estou tendo muita dificuldade para aprender o ambiente WEB.

    Estou desenvolvendo um sistema onde vai ter um login para acessar, e dependendo do nível do usuário logado todo o menu se altera para se adequar à seu nível de acesso.

    Pensei no seguinte: "Quando eu verificar o login do usuário eu pego todas as informações dele, jogo no objeto UsuarioTransfer(UMA CLASSE COM OS ATRIBUTOS DO USUARIO LOGADO) e jogo esse objeto na session de Usuario_logado, e prolongo a vida dessa session.

    Para permitir somente um usuário logado com aquele login, no banco de dados vou ter uma tabela que vai fazer esse controle de quem está logado ou não e de acordo com o log de atividades no sistema(TAMBEM NO BANCO DE DADOS) vou verificar se aquela pessoa está ociosa ou não, e assim posso desloga-la, ou barrar o mesmo login tentando logar novamente no sistema. ".

     

    Se eu fizer isso, vou estar fazendo da maneira certa ou é somente uma "gambiarra" que vai funcionar e me dar problemas no futuro ? Pois se eu tiver muitos usuários logados no sistema com essa quantidade de sessão com objeto armazenado vai pesar um pouco né?

    Qual a solução mais adequada para fazer o que estou querendo? Obrigado.



    • Editado Kelvin Cleto terça-feira, 27 de dezembro de 2011 16:48
    terça-feira, 27 de dezembro de 2011 11:48

Todas as Respostas

  • Kelvin,

    Eu utilizaria as tabelas de login padrões do ASP.NET. Nelas você conseguirá gerenciar tudo isto apenas com a classe Membership(). Também será possível fazer o que quiser utilizando as Roles que estas tabelas proporcionam, podendo criar grupos de acessos por logins.

    Esta técnica fica bem esclarecida no livro ASP.NET 3.5 Para leigos. Inclusive, neste livro também da uma pincelada em Skins e Themes, que podem auxiliar na criação de páginas personalizadas.

    Se quiser buscar mais sobre na internet, procure por Segurança de aplicações ASP.NET.

    Em relação a navegação, recomendo que deva trabalhar com SiteMapPath e Menu Control, que são ferramentas nativas da linguagem que funcionam bem para o que você busca: personalização. O SiteMapPath possui algumas restrições, como apenas um arquivo desse tipo por projeto, como se fosse um web.config. Isto pode ser ruim se você precisar de vários tipos de menu e vários subprojetos ou subdiretórios dentro de um projeto. Neste caso, recomendo a utilização de um XML para fazer o menu. As coisas ficarão um pouco mais difíceis, mas é possível contornar.


    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto
    • Editado Rafa Santos terça-feira, 27 de dezembro de 2011 16:57 correções
    • Sugerido como Resposta Ronie Dias terça-feira, 27 de dezembro de 2011 18:29
    terça-feira, 27 de dezembro de 2011 16:56