Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

scorpio

usuario logado

Recommended Posts

Pessoal, atualmente para controlar os usuários que podem acessar o site, coloco algum valor na Session e na master page verifico esse valor.

Algo assim:

if(String.IsNullOrEmpty(Session["User"].ToString()))
    //redireciona para a página de erro

Este é um jeito "certo" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não scorpio você pode controlar pelo web.config, falando quais páginas são acessíveis por qualquer usuário e quais dependem de autenticação.

 

Pesquise sobre authentication mode e authorization com web.config.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Scorpio se você esta usando session, do jeito q está fazendo poderá causar erro:

 

você pode fazer assim pra não gerar erro:

if(Equals(Session["User"], null) )
{
//redireciona para a página de erro
}
Pois Session["User"].ToString(), se Session["User"] for nulo e você tentar chamar ToString(), causará erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não scorpio você pode controlar pelo web.config, falando quais páginas são acessíveis por qualquer usuário e quais dependem de autenticação.

 

Pesquise sobre authentication mode e authorization com web.config.

 

Abraços...

 

Legal isso. Já tinha visto por cima, mas não sabia bem para que servia e como funcionava.

 

Mas e se eu tiver niveis de acesso? Usando o Mode="Forms", minha forma de autenticação, como vou bloquear as páginas?.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Scorpio,

 

 

No caso se você utilizar pelo webconfig, ele sempre vai liberar o acesso se a sessão estiver preenchida

para o tratamento de permissão, você pode criar uma classe separada ou até mesmo na propria página, verificando qual a permissão que aquela sessão tem.

eu utilizo bastante isso para visualização de menus

Compartilhar este post


Link para o post
Compartilhar em outros sites

Justamente como o Rafael disse, você terá que fazer este controle, o web.config somente valida se esta logado ou não.

Mas não é totalmente impossível controlar pelo web.config só acho que será mais complicado, se não me engano você consegue através do nome do usuário falar que ele só tem acesso aquele nível, mas até onde eu li, não foi muito sobre isso, o nome do usuário fica chapado no web.config.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Scorpio utilizando o membership você pode controlar todo o acesso da aplicação através de Roles (Regras), utilizando pastas com web.config dentro delas onde será setado a regras de acesso.

Sem a preocupação de esta validando niveis atraves de sessão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Masters,

 

Pela 1ª vez (me perdoe), vou contradizer o Quintelab.

Na realidade é possivel você controlar todos os usuários pelo Web.Config se utilizar o esquema de security do asp.net.

Ele cria uma página de administração pra você onde é possivel criar os grupos de acesso e usuários tudo via wizard..

Sim, os usuários ficam no Web.Config, mas as senhas podem ficar criptografadas.

Este esquema de secutiry tambem tem suporte nativo ao SQL Server e que eu saiba existem scripts disponiveis para outros bancos..

 

Normalmente o que eu faço:

1) Crio apenas um usuário ADM com senha criptograda no Web.Config. Faço isso para que eu possa dar manutenção na página sem a necessidade de usuários cadastrados na base de dados.

2) Todos os outros usuários ficam em uma base de dados minha (não é a do secutiry)

3) Crio os grupos no web.config usando o security ou na mão e faço uma associação a base de meus usuários.

4) Utilizando as funções de Authorization eu concedo acesso ao usuário e crio um link com o grupo associado.

5) Através de uma classe de usuário eu faço um link guardando os dados de usuário dentro de uma session onde obtenho acesso a esta session através de uma classe estatica Helper.

6) Tomo os devidos cuidados no Global.asax para que ao expirar a sessão o ticket tambem expire redirecionando o usuário a página de login.

 

Algumas vantagens de se fazer isso é não precisar colocar uma verificação no header ou loader de cada página além de poder controlar facilmente as páginas que os usuários terão acesso.

 

Verdadeiramente sou contra utilizar o Session para controlar o acesso do usuário, pois é muito comum em sites grandes, "esquecer" de colocar a validação em alguma página que não esta usando a masterpage (isso quando o site usa uma masterpage).

 

Todas as soluções são viaveis você deverá analisar qual delas melhor se aplica a sua necessidade.

 

Se realmente se interessar, olhe este artigo. É um passo-a-passo para configurar o MemberShip Security do Asp.NET http://www.macoratti.net/07/05/aspn_umr.htm

 

Espero te-lo ajudado. ;)

 

Abs,

Angelo Compri

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas você não me contradiz, rs...

Você só afirmou o que eu disse:

Mas não é totalmente impossível controlar pelo web.config só acho que será mais complicado

Como eu disse só acho que é um pouco mais complicado. Prefiro eu controlar as páginas de acesso, mas claro já tenho toda uma estrutura pronta.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal.

 

Pela Session parece ser mais simples. E também não sou muito fã de coisas totalmente automaticas. Nunca é do jeito que o cliente quer.

Os proximos sites começo a desenvolver com o authetication mode e os níveis eu controlo.

 

 

Outra coisa. O timeout do forms, se eu configurar, é igual ao da Session ? Ou são coisas distintas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.