Session

Que tal estimado experto: mi problema es el siguiente, tengo una página de acceso por password, y para que no se salten esta página para entrar a la principal, utilizo la variable session de esta forma
En la página de acceso:
If Request.Form("login") = "dg" AND Request.Form("password") = "dg01" Then
Response.Write "Usuario Valido "
session("valida")=1
Response.redirect "consulta.asp"
Else
Response.Write "Usuario No Valido "
End If
%>
y en la pagina principal:
<%
if session ("valida")<>1 then
response.redirect("loginx.asp")
end if
%>
Pero solo funciona la primera vez que acceso a internet después puedo entrar directo a la página principal con solo escribir la dirección, y eso no debería ser, pareciera como si la variable expirara.
De antemano gracias
Desde Mexico City
Armin Canto
Respuesta
1
Con este comando eliminas la sesión actual.
<% Session.Abandon %>

1 respuesta más de otro experto

Respuesta
1
Lo que te esta ocurriendo es que la variable de sesión no caduca inmediatamente, sino que por defecto al menos que especifiques lo contrario suele durar 20 minutos, es decir desde que el usuario hace la ultima acción de navegar en tus páginas hasta que pasan 20 minutos la variable de sesión se sigue manteniendo viva, pasado ese tiempo se destruye. Si durante estos 20 minutos tecleas directamente la dirección, como ya te has validado, la variable de sesión Session(? ¿Valida?) Todavía vale 1 y por eso entras directamente en la página principal y no te redirecciona a la página loginx.asp.
Es buena practica dejar esos 20 minutos, ya que si acortas el tiempo, supone que tu usuario se levanta a tomar un café o fumar un cigarro, al volver deberá validarse otra vez, ya que supongo que este código que has puesto
<%
if session ("valida")<>1 then
response.redirect("loginx.asp")
end if
%>
Lo incluirás en todas tus páginas del site para que nadie sabiendo directamente la dirección de una página entre.
Solución:
Poner un botón de desconexión, que te lleve a una página que se despida del usuario y añádele al principio de la página este código:
<%Session.Abandon%>
El cual destruirá todas las variables de sesión de ese usuario.
Piensa que si obligas que cada vez que accedan a una página te pidiera validarte no dudarían ni 5 segundos en tu página. También piensa que si alguien se válido correctamente es que metió las claves bien. El único problema que habría es que fuera por ejemplo un ciber-café, y el usuario se fuese y dejara la página puesta, al llegar otro podría navegar, pero si adviertes bien que cuando abandonen la página se desconecten, el otro usuario que venga detrás no podrá entrar.
Bueno no me enrollo más, un saludo dsd cádiz y espero habert ayudado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas