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á informar
<html>
<head>
<title>Gerenciando logins com cookies</title>
</head>
<body>
//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
<form method="POST" action="login.asp?destino=<%=destino%>">
<table border=0>
<tr>
<td>Nome:</td>
<td><input type="text" name="nomeusuario" size=12></td>
</tr>
<tr>
<td>Senha:</td>
<td><input type="password" name="senha" size=12></td>
</tr>
<tr>
<td>lembrar Login:</td>
<td><input type="checkbox" name="lembrar" value="on"></td>
</tr>
<tr colspan=2>
<td><center><input type="submit" value="Efetuar Login"></center></td>
</tr>
</table>
</form>
</body>
</html>
Arquivo: 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");
}
%>
<html>
<head>
<title>Página de Logout</title>
</head>
<body>
//exibe o nome do usuário que se logou e direciona para a página logout.asp
Olá , <%=nomeusuario%>.
<form method="POST" action="logout.asp">
<input type="submit" value="Logout">
<input type="hidden" name="logout" value="logout">
</form>
</body>
</html>
Arquivo: teste.asp
<%@ LANGUAGE="JAVASCRIPT" %>
<%
var nomeusuario=null;
// pega o usuário do cookie
nomeusuario = Request.Cookies("nomeusuario");
// se o usuário estiver indefinido atribui null
if((""+nomeusuario) == "undefined")
nomeusuario = null;
// se o usuario for null ou vazio então manda ela fazer o login
if((nomeusuario==null) || (nomeusuario==""))
{
Response.Redirect("login.asp?destino=teste.asp");
}
%>
<html>
<head>
<title>Gerenciando login com cookies</title>
</head>
<body>
Você esta autenticado !
</body>
</html>