Acceder a una página sin introducir el código de usuario

Antes que nada gracias por haberme ayudado con lo de la BD, como de 20 expertos a los que le pregunte fuiste el único capaz.
Pero ahora te molesto con otra preguntica, cuando el usuario "X" se loguea entra perfectamente a la página que le corresponde, pero el error es que si el usuario le da por guardar su página en favoritos, puede aaceder la próxima vez sin loguearse, ¿cómo hago para que no se salte este paso?
El código armado de la página login.asp es el siguiente:
<%if request.form("usuario")="" then%>
<%=request.querystring("msg")%> <!-- mensaje de error en caso de que el usuario y contraseña sean inválidos -->
<form method="POST" action="login.asp">
Usuario: <input type="text" name="usuario"><br>
Password: <input type="password" name="Password"> <br><input type="submit" value="Entrar">
</form>
<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("login.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then
' nos ha devuelto un registro, ahora miraremos si es válido
' con ello evitamos el ataque típico SQL
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1
Web= rs("Web")
end if
else
session("autorizacion")=-1
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")<> 1 then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos
response.redirect "login.asp?msg=Usuario%20o%20password%20incorrecta"
else
Response.Redirect Web
end if
end if
%>
Gracias de Antemano...

1 respuesta

Respuesta
1
Para hacer eso, tendrías que trabajar con sesiones...
Puedes agregar este código:
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1
Session.Timeout =20
Web= rs("Web")
end if
else
session("autorizacion")=-1
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")<> 1 then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos
response.redirect "login.asp?msg=Usuario%20o%20password%20incorrecta"
else
Response.Redirect Web
end if
end if
%>
Con esa linea
Session.Timeout =20
Estableces que las Variables de Session (autorización) solo van a tener una duración de 20 minutos..
Esto quiere decir que si en 20 minutos no realizamos ninguna acción, el servidor dará por finalizada la sesión y todas las variables Session serán abandonadas.
Por lo tanto... si tu pones un If que vuelva a validar la variable de sesión "autorizacion" en la página a la que se redirecciona, ya no podrán entrar aunque tengan la página en favoritos... ya que estas activando la sesión en el Login...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas