El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de ASP/ASP.NET
Foros del Guru > ASP/ASP.NET
Usuario Session.Abandon
onemanarmy
1 Mensaje(s)
Enviado - 25/10/2004
 
Hola a todos!

Estoy haciendo un simple logout con Session.Abandon; de este modo el usuario no podrá volver a entrar en las páginas restringidas (se le envía de nuevo al login). El problema es que esto no funciona: hago un enlace para hacer logout --lo cual lleva a cierrasesion.asp que usa el Session.Abandon y me redirecciona al index--, pero si después vuelvo a entrar en una de esas "páginas restringidas" sólo para usuarios, aparece como que ese usuario sigue conectado.
Ésto lo detecto así:

<%
if ( Session("user") ) {
Response.Write("Sesión de "+Session('user')+" iniciada. Haga click <a href='cierrasesion.asp'>aquí</a> para cerrar sesión.")
} else {
Response.Redirect("login.asp");
}
%>

Y el archivo cierrasesion.asp es así de SENCILLO:

<%@LANGUAGE="JAVASCRIPT"%>
<%
Session.Abandon();
Response.Redirect("index1.html");
%>


No sé qué está ocurriendo, la verdad. Si algún master pudiera darme consejo. GRACIAS.

AlexOnOff
 
Desconocido
Enviado - 28/10/2004
 
hago un formulario y en cada página pongo código para evitar el chaché del disco. primero, usuario como "user" y clave como "pass" y uso una session como sigue:

<%
dim usuario, pasword

usuario = Request.Form("user")
password = Request.Form("pass")

if (usuario <> "guillermo" or password <> "webking") then
session("autorizado") = "no"
else
session("autorizado") = "yes"
response.Redirect "pagina-protegida.htm"
end if

if (VarType(session("autorizado")) = 0 OR session("autorizado") = "no") then
call formulario()
end if
%>

Tengo que crear una subrutina que mostrará el formulario donde pido la clave, si esta estuviera mala, esto se hace en la misma página, antes de todo esto..., esta función se llamará algo como formulario(), al final queda como esto... (el archivo se llama ordenes.asp)

<%@LANGUAGE="VBScript"%>

<%
sub formulario()
%>

<form method="post" action="ordenes.asp">
<input type="text" name="user" size="20"><input type="password" name="pass" size="20">
<input type="image" src="carretilla/ingresar.gif">
</form>

<%
end sub
%>
<!-- SEGUNDA PARTE -->
<%
dim usuario, pasword

usuario = Request.Form("user")
password = Request.Form("pass")

if (usuario <> "guillermo" or password <> "webking") then
session("autorizado") = "no"
else
session("autorizado") = "yes"
response.Redirect "pagina-protegida.ASP"
end if

if (VarType(session("autorizado")) = 0 OR session("autorizado") = "no") then
call formulario()
end if
%>

luego analicemos:

Enviando el formulario a nuestra misma página entendemos que:

Las Variables al momento de entrar están vacías o no inicializadas, incluyendo las de session y como no recibe nada Usuario= y password = entonces no tienen nada y la variable de sessión ni siquiera existe, entonces recibimos solicitamos lo del formulario (no llenado aún - compara arriba)

usuario = Request.Form("user")
password = Request.Form("pass")

if (usuario <> "guillermo" or password <> "webking") then
session("autorizado") = "no"

y dejamos la sessión en NO, porque no existe nada aún. luego comparamos lo siguiente:

else
session("autorizado") = "yes"
response.Redirect "pagina-protegida.ASP"
end if

Ahora, segun la sesión, tomaremos decisiones:

if (VarType(session("autorizado")) = 0 OR session("autorizado") = "no") then
call formulario()
end if

Si la variable de sessión ni siquiera existe o está en NO entonces llamamos a la función del formulario.

Ahora, yendo a la siguiente página, el código de comparación será:

<%
if (VarType(Session("autorizado")) = 0 OR session("autorizado") <> "yes") then

session("autorizado") = "no"
response.redirect "https://" & Request.ServerVariables("SERVER_NAME") & "/ordenes.asp"

end if
%>

Ultima comparación...(arriba)
 
Desconocido
Enviado - 3/11/2004
 
facil


session("user")=""


www.vioip.com
 
 

 

Contactos myStudio Network