login , caducidad de pagina y global.asa

17/04/2004 - 00:27 por Jaime Lucci | Informe spam
Hola a todos, como están???

Bueno, les momento. Tengo una pagina de login, que consulta los datos en una
bd de sql, y si estan correcto, lo redirecciona a otra página, iniciando una
sesión.

La pagina es login.asp, el action del form chekusr.asp, donde chequea la
tabla usuarios en la bd, y el usr y pwr estan correcto, utilizo
sesion(nombre_de_sesion)=true, y luego response.redirect index.asp.

Hasta ahi todo bien. Lo que no quiero que suceda, es que vuelva atras. Es
decir, si el usuario presiona el boton de atras, que la pagina anterior
(login.asp) haya caducado (o expirado, como muestra el internet explorer)...
¿como puedo hacer eso??? ¿con asp, javascript...???

Otra cosita, no me funciona bien el global.asa. Alli, inicio una variable:

Sub Application_OnStart
Application("activos") = 0
End Sub

y los contadores cuando se inicia una sesion, y cuando se sale:

Sub Session_OnStart
Application.lock
Application("activos") = Application("activos") + 1
Application.unlock
End Sub

Sub Session_OnEnd
Application.lock
Application("activos") = Application("activos") - 1
Application.unlock
End Sub

Y en una pagina, pongo

response.write application("activos")

y no me muestra nada.

Les agradezco por su ayuda. Y recomendaciones. Espero que me entiendan la
idea.

Un abrazo a todos y suerte

Jaime Lucci
Salta - Argentina
jaimelucci@hotmail.com
 

Leer las respuestas

#1 Franco Figún
17/04/2004 - 00:56 | Informe spam
Yo tengo hecho algo de la siguiente manera, te paso los ejemplos. La primera
pagina, se llama validauser.asp:

<!--#include file="corregircomillas.asp" -->
<%
Dim Con , rst, strsql, registros
Set Con = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")

Con.Open "Provider=SQLOLEDB; Data Source=(localhost); Initial Catalog=bd
;User ID=user ;Password=user ;"
strSQL = "select * from usuarios where usuario'"&corregircomillas(request("usuario")) & "' AND
clave='"&corregircomillas(request("clave"))&"'"
set rst = con.Execute (strSQL)

if rst.EOF then
rst.Close
set rst=nothing
con.Close
set con = nothing
Response.write "<center><font size=2 ; color='000000' ;
face='verdana'><b>DATOS INCORRECTOS"
Response.Write "<br><br>Haga <a href='ingreso.html'>click<a> para volver a
intentar.</b></font></center>"
else
session("usuarioid") = trim(rst("UsuarioId"))
session("usuario") = trim(request("usuario"))
session("password") = trim(rst("clave"))
session("area") = trim(rst("area"))
session("permisos") = trim(rst("permisos"))
usuario = rst("usuario")
rst.Close
set rst=nothing
con.Close
set con = nothing
Response.Redirect ("menu.asp?usuario="&usuario)
end if
%>

Lo que hace esta pagina es simple: primeramente hay una pagina html con 2
textbox llamados usuario y clave, y el post va dirigido a la pagina de
arriba. Esa pagina, valida si el usuario existe, si es correcta la pagina, y
la redirecciona a una pagina llamado menu.asp, en donde le pasa un variable
con el nombre de usuario, y en ese menu,asp, yo hago un SELECT CASE, en
donde utilizo session("area") = trim(rst("area")) y session("permisos") trim(rst("permisos")); segun el area y segun los permisos, el usuario tiene
derecho a ciertas paginas, y puede ver, o modificar y borrar datos.

La pagina validauser.asp, tambien tiene un include de esta funcion:
<%
FUNCTION corregircomillas(cadena)
corregircomillas = REPLACE(cadena, "'", "''")
END FUNCTION
%>

La cual sirve para que cuando un usuario manda datos a una bd access o sql,
si alguien ingresa comillas simples o dobles, la base piensa que en una
sentencia sql, y te da un error.

Por otro lado, la estructura de la tabla usuario, deberia ser asi:

UsuarioId
usuario
clave
area
permisos

Luego te conviene poner otro include en cada pagina asp, llamada por ejemplo
session.asp, con el siguiente codigo:

<%
if session("usuarioid") = "" then
response.redirect "ingreso.html"
end if
%>

Si un usuario quiere tratar de ingresar a cada pagina sin loguearse, le va a
dar error y lo va a enviar a la pagina ingreso.html.

Espero que te sirva








"Jaime Lucci" wrote in message
news:
Hola a todos, como están???

Bueno, les momento. Tengo una pagina de login, que consulta los datos en


una
bd de sql, y si estan correcto, lo redirecciona a otra página, iniciando


una
sesión.

La pagina es login.asp, el action del form chekusr.asp, donde chequea la
tabla usuarios en la bd, y el usr y pwr estan correcto, utilizo
sesion(nombre_de_sesion)=true, y luego response.redirect index.asp.

Hasta ahi todo bien. Lo que no quiero que suceda, es que vuelva atras. Es
decir, si el usuario presiona el boton de atras, que la pagina anterior
(login.asp) haya caducado (o expirado, como muestra el internet


explorer)...
¿como puedo hacer eso??? ¿con asp, javascript...???

Otra cosita, no me funciona bien el global.asa. Alli, inicio una variable:

Sub Application_OnStart
Application("activos") = 0
End Sub

y los contadores cuando se inicia una sesion, y cuando se sale:

Sub Session_OnStart
Application.lock
Application("activos") = Application("activos") + 1
Application.unlock
End Sub

Sub Session_OnEnd
Application.lock
Application("activos") = Application("activos") - 1
Application.unlock
End Sub

Y en una pagina, pongo

response.write application("activos")

y no me muestra nada.

Les agradezco por su ayuda. Y recomendaciones. Espero que me entiendan la
idea.

Un abrazo a todos y suerte

Jaime Lucci
Salta - Argentina



Preguntas similares