ASP.NET - Web.Config : Forms Authentication
Neste artigo irei abordar um assunto de interesse de quase 100% dos analistas e desenvolvedores de sistemas voltados para a WEB, a segurança. A plataforma .Net implementa no ASP .Net uma autenticação revolucionária em aspecto de segurança e formas de fazê-las.
Para poder realizar estes novos recursos, os
desenvolvedores podem contar com uma classe inteira para esta função a System.Web.Security.
Apenas como título de comentário a respeito de Autenticação e
validação, que são duas coisas muito semelhantes, mas totalmente diferente, as
definições a seguir foram retirados do Pequeno Dicionário Enciclopédico Koogan
Larousse, autenticar: verificar a legitimidade das
informações; validar: é reconhecer a validade das informações.
<authentication mode="Forms"> |
Existem 4 parâmetros que o authentication mode aceita
None: Não existe nenhuma forma de autenticação do usuário;
Windows: O aplicativo ASP .Net utiliza o IIS (Internet Information
Service) para autenticar os usuários e senhas. O IIS trabalha de três formas:
Básico, Digest e Integrado com o Windows, sendo que cada um destes a opção de
usuário anônimo deverá estar desabilitada e condizente com o aplicativo ASP
.Net
Passport: Este tipo de autenticação é utilizado através dos servidores da
Microsoft, de forma única e centralizada. O usuário e a senha são as mesmas que
o cliente utiliza para acessar o Hotmail e outros sites da Microsoft.
Form: Esta forma é a mais utilizada e a que deixa o programador mais
livre para poder implementar o seu código de autenticação muitas vezes esta
forma está diretamente ligada com um banco de dados (SQL Server, Oracle,etc).
O authentication mode possui somente o atributo mode para ser implementado, mas
possui um outro node, o <form> que possui outros
atributos, dentre eles somente irei comentar sobre os quatro principais,
name,
loginUrl, timeout e path
name: Este atributo terá o nome do principal Cookie pelo qual o
aplicativo ASP .Net fará a autenticação dos usuários
loginUrl: neste atributo é informado qual a página ASPX que será redirecionada após a autenticação caso não tenha ocorrido ou que tenha ocorrida sem sucesso. Este campo é muito interessante, caso o usuário queira acessar alguma página sem passar pela página de login, o mesmo será direcionado para a página neste atributo informado.
timeout: este atributo é responsável por cuidar do tempo que o
aplicativo poderá demorar para realizar a autenticação, caso contrário não
sairá da página de login. A unidade de medida para este tempo é o segundo.
path: indica qual diretório virtual do
IIS que a autenticação será
utilizada.
Exemplo:
<autentication mode="Forms"> |
Entretanto para que a autenticação seja feita de forma completa não basta
somente configurar corretamente o Web.Config é necessário codificar alguns
trechos de código nas páginas ASPX, como exemplificarei logo abaixo.
O exemplo de código deverá ser implementado no evento click do
botão OK, imaginando-se que esta tela Login.aspx possui dois controles TextBox,
dois Labels e dois Buttons, sendo um deles o Button OK.
‘ a variável iResult deverá receber o código de identificação do usuário, _ Dim iResult as Integer |
A variável authTicket do tipo FormsAuthenticationTicket
é a que faz a maior parte do trabalho de autenticação, uma vez que nesta
variável terá armazenado o Name, neste nosso exemplo estou armazenando o valor
de identificação do usuário, o segundo parâmetro é se esta variável será
persistente ou não, no exemplo não será persistente e o último parâmetro é o
timeout de acesso, com a unidade de medida em minutos. Este último é muito
interessante, uma vez se o usuário ficar mais que o tempo definido neste
parâmetro sem acessar o servidor, o aplicativo redireciona para a página de
login.
encrypTicket é uma variável do tipo FormsAuthentication.Encrypt
que tem como parâmetro no seu construtor uma variável do tipo FormsAuthenticationTicket.
Esta variável é de suma importância no que tange o assunto segurança, pelo
motivo da criptografia realizada nesta variável.
A última
variável importante é a do tipo HttpCookie, aonde este possui
dois parâmetros no seu construtor, o nome do Cookie e a variável do tipo
FormsAuthentication.Encrypt, o primeiro parâmetro é recuperado do próprio Web.Config,
do atributo name do note
<Form>
Depois da autenticação e da criação das variáveis, a variável do tipo
HttpCookie deverá ser enviada para a próxima página, com o
Response
Autor do
Artigo
Líder do GUP .NET
Grupo de Usuários do Paraná – Plataforma .NET
http:://www.gupnet.com.br
Colunista do site Linha de Código
http://www.linhadecodigo.com.br
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|