Duda

Hola, gracias por tu atención. Tengo un problemilla y no sé como solucionarlo. Resulta que quiero que para poder acceder a una página se tenga previamente y forzosamente haber pasado por una anterior. Esta anterior tendrá un link que al hacer clic me ha de llevar a la página restringida. Supongo que para esto es ideal el ojeto session, pero ¿cómo lo uso en un link?
Gracias.
Respuesta
1
Usa cookie
***** PUBLICIDAD *****
Visita www.misubasta.net y gana por el registro 10 euros
**********************

1 respuesta más de otro experto

Respuesta
1
Lo que tienes que hacer es que cuando el usuario llegue a la página previa le creas una variable session y le pones un valor por ejemplo True, en el enlace no tienes que añadir nada especial, simplemente que te lleve a a esa página restringida. Y en la primera línea de la página restringida lo que haces es comprobar que la variable session contiene True:
If NOT (Session(?acceso1?)) Then
? El usuario no viene de la pagina previa lo mandas a otra pagina
Response.Redirect(?usuario_no_valido.asp?)
Else
?aquí pones el codigo de tu pagina
End If
Sería ideal incluso que en la pagina de inicio o mejor en el Sub OnStar_Session del Global.asa que crees la variable Session(?acceso1?)=False, así ya la tienes controlada.
Esto permitirá que incluso si un usuario supiera la existencia de tu página restringida aunque pusiera http://www.tudominio.com/pagina_restringuida.asp, lo redireccione a la página de usuario no válido si no ha pasado antes por tu página previa.
Perfecto. Muchas gracias.
Hola, gracias por tu respuesta. En la página inicial tengo algo como:
session("aut")=1
y en la página a la que llego a través del link:
if session("aut") <> 1 then
response.redirect "error.asp"
En dif
Esto me funciona si las dos páginas están en el mismo IIS, en cuanto cambio la página final a otro IIS pierdo el session porque se me ejecuta el redirect.
¿Me explico? ¿Alguna idea?
Cuando dices IIS supongo que estas diciendo en otra carpeta dentro de tu directorio virtual del IIS, ya que si están en diferentes direcotorios virtuales de IIS es normal que se destruyan la variables de session. Para que esto no ocurra introduce la página final, la de acceso restringido en una subcarpeta o de la carpeta donde tienes ubicada la página del link o en la misma carpeta.
Si no esto no fuera posible, entonces cambiamos de tactica: en el link yo añadiria esto : <a href='pagina_restringida.asp?cod=<%Session("aut")%>'>enlace</a>
y en la página a la que llegas a través del link:
if Request.Form("cod")<> 1 then
response.redirect "error.asp"
end if
Prueba ahora y me cuentas.
Perdona he puesto mal el link, quedaría así:
<a href='pagina_restringida.asp?cod=<%=Session("aut")%>'>enlace</a>
...
Y no se vayan todavía que aun hay más... También he puesto mal el código de la página a la que llega a través del link, es así:
if Request.QueryString("cod")<> 1 then
response.redirect "error.asp"
end if
La hora que es ya que ya va siendo hora de comer y descansar.
Hola, la página restringida está en otro servidor direrente del que está el link. ¿Funciona lo que me has explicado?
Gracias.
Lo ultimo te debe funcionar si tines acceso a modificar el código de esa página introduciendo :
if Request.QueryString("cod")<> 1 then
response.redirect "error.asp"
end if
Pruébalo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas