Autorização e Autenticação de usuários é um assunto de extrema importância quando falamos de um sistema, independente de plataforma e linguagem de programação.
Para aplicações web feitas em .NET. temos o recurso do web.config, que nada mais é que um arquivo XML protegido onde podemos definir as mais variadas assertivas, validações e permissões para desenvolvimento e segurança.
Por exemplo, quando temos todo o nosso sistema protegido por login e senha de usuário, o qual espera um autenticação para uso, podemos simplesmente definir no web.config, dentro da tag "system.web", o seguinte:
[Autenticação via Forms]
->authentication mode="Forms"
->forms name=".ASPXFORMSAUTH" defaulturl="Default.aspx" loginurl="Login.aspx"
->/forms
->/authentication
->forms name=".ASPXFORMSAUTH" defaulturl="Default.aspx" loginurl="Login.aspx"
->/forms
->/authentication
1. Por padrão os parâmetros defaultUrl já é Default.aspx e loginUrl já é Login.aspx, assim não é preciso criar esta tag "forms".
2. Também por padrão o FormsAuthentication.FormsCookieName (parâmetro "name" é igual a .ASPXFORMSAUTH)
3. As 3 propriedades definidas dentro da tag "forms" são utilizadas quando se quer criar um outro usuário de autenticação (que é desnecessário), pois por padrão é o do exemplo; ou, quando o redirect do login não deve ir para o padrão Default.aspx, mas sim para outra página qualquer; ou, quando a página de login não se chamará Login.aspx, mas sim outro nome qualquer.
[Autorização para Usuários Autenticados]
->authorization
->deny users="?"
->/deny
->/authorization
->deny users="?"
->/deny
->/authorization
1. Aqui estou dizendo que minha aplicação está bloqueada para usuários desconhecidos, assim todas as páginas não poderão ser acessadas sem antes o usuário estar autenticado via login.
2. O símbolo "?" serve para anônimos/desconhecidos e o símbolo "*" para autenticados/conhecidos
3. Com "deny" bloqueamos e com "allow" permitimos!
Mas, e se quermos criar uma página para acesso irrestrito? Uma página para acesso externo? Simplesmente, definos após o fechamento da tag "system.web" o seguinte:
[Autorização para Página Externa]
->location path="PaginaExterna.aspx"
->system.web
->authorization
->allow users="?"
->/allow
->/authorization
->/system.web
->/location
->system.web
->authorization
->allow users="?"
->/allow
->/authorization
->/system.web
->/location
1. Estamos permitindo acesso sem login (usuários não autenticados) à página setada o parâmetro PATH da tag "location".
Bom... era isto, mas para melhor exemplificar o que foi falado acima, está postado no SkyDrive uma solução que demonstra o funcionamento desta autenticação e autorização de página externa: Autenticacao-Autorizacao.
Hasta e façam bom proveito!
}

0 comentários:
Postar um comentário