Muitos sites exigem que você se registre para poder ter acesso ao conteúdo . Geralmente este registro é gratuito , e, após você se registrar precisa efetuar o login para usar o site. Alguns sites permitem que você configure o seu login como automático. Nesta forma o navegador vai ‘memorizar’ a sua identificação e assim você não vai precisar digitar seu nome de usuário e sua senha toda vez que for acessar o site. Esta memorização geralmente utiliza cookies.
Vou tentar simular este mecanismo usando criando algumas páginas ASP :
1. Uma página para efetuar o login : login.asp
2. uma página para efetuar o logout : logout.asp
3. uma página que exige que seja feito o login para que você possa acessá-la : teste.asp
Vamos iniciar com a página de login. O arquivo login.asp contém o script com o código para gerenciar os cookies e o formulário HTML.
Se o usuário indicou que deseja que sua senha e nome fossem ‘lembrados’ ao acessar a página de teste – teste.asp – ele já estará autenticado.
Arquivo: login.asp <%@ LANGUAGE="JAVASCRIPT" %> <% //declara as variáveis que serão usadas na página var nomeusuario=null; var senha=null; var lembrar=null; var destino=null; //Tenta obter um cookie nomeusuario = Request.Cookies("nomeusuario"); //Se o valor retornado for indefinido substitui por null if((""+nomeusuario) == "undefined") nomeusuario = null; //Verifica se existe um destino definido destino = Request.QueryString("destino"); //verifica se o cookie para o nome do usuário esta vazio , se estiver tenta capturar o nome do usuário, a senha e o indicativo para lembrar a senha if((nomeusuario==null) || (nomeusuario=="")) { nomeusuario = Request.Form("nomeusuario"); senha = Request.Form("senha"); lembrar = Request.Form("lembrar"); //aqui estamos permitindo que o login seja efetuado se a senha e o nome forem iguais if((nomeusuario != senha) && !eval("""+nomeusuario+""==""+senha+""")) nomeusuario=null; } // se o nome do usuário e o destino forem indefinidos atribua null if((""+nomeusuario) == "undefined") nomeusuario = null; if((""+destino) == "undefined") destino = null; //se destino for null ou estiver vazio defina para página default : logout.asp if((destino==null) || (destino=="")) destino = "logout.asp"; //Se nome do usuário NÃO for null ou NÃO for vazio então pega ele do cookie if((nomeusuario!=null) && (nomeusuario!="")) { Response.Cookies("nomeusuario")=nomeusuario; //Se lembrar estiver ativo então define uma data de expiração para cookie if(lembrar=="on") { var expire,expireString; var month,year; expire = new Date(); month = expire.getMonth(); year = expire.getFullYear(); if(month == 11) { month = 0; year = year+1; } else { month = month+1; } expire.setMonth(month); expire.setFullYear(year); expireString = expire.toLocaleString(); Response.Cookies("nomeusuario").Expires = expireString; } //direciona o usuário para o destino Response.Redirect(destino); } %> //Aqui temos o formulário com os dados que o usuário deverá informarArquivo: logout.asp <%@ LANGUAGE="JAVASCRIPT" %> <% var nomeusuario; // tenta obter o cookie para o usuario nomeusuario = Request.Cookies("nomeusuario"); // se o usuario for indefinido atribui null if((""+nomeusuario) == "undefined") nomeusuario = null; //se foi pressionado o botão de logout ou usuario for null ou vazio define o cookie como vazio e redireciona // o usuário para a pagina de login if((Request.Form("logout") == "logout") || (nomeusuario==null) || (nomeusuario=="")) { Response.Cookies("nomeusuario") = ""; Response.Redirect("login.asp"); } %>Gerenciando logins com cookies //Ao clicar no botão Efetuar login será chamado a página login.asp com o parâmetro destino igual ao que for definido no código