sexta-feira, 18 de dezembro de 2009

void Web.config(Autorização, Autenticação)

{

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

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

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

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