Diferentes duraciones de sesion

17/01/2005 - 10:49 por iñi | Informe spam
¿Es posible configurar el IIS para que permita diferentes duraciones de
sesión dependiendo de si la sesión se inicia desde dentro de una LAN (es un
caso de una Intranet) o desde fuera de la misma?

Gracias

Preguntas similare

Leer las respuestas

#1 Gustavo Castillo
17/01/2005 - 17:13 | Informe spam
Hola,
Básicamente tendrás q detectar por medio de un asp si la ip es local, de no
serlo se asignas diferente valor al session.timeout
Ahora desde el IIS la única q se me ocurre es q crees 2 sitios y a uno le
apuntes la dirección local y a el otro la dirección de Internet
de esta manera estas separando el trafico, porque un sitio va a escuchar a
el sitio local y el otro a el de Internet, siendo q las dns de tu lan
las manejes vos
sino lo tendrías q hacer por código

TIME OUT

http://www.soffront.com/How%20To/TR...20Time.htm

IP DEL CLIENTE
http://www.ezwp.com/asp/utilizando-...es-en-asp/

espero q te sirva.

Un abrazo
Gustavo Castillo
MCP
http://www.elsoporte.com


"iñi" escribió en el mensaje
news:
¿Es posible configurar el IIS para que permita diferentes duraciones de
sesión dependiendo de si la sesión se inicia desde dentro de una LAN (es


un
caso de una Intranet) o desde fuera de la misma?

Gracias
Respuesta Responder a este mensaje
#2 iñi
18/01/2005 - 10:15 | Informe spam
Gracias por contestar, Gustavo. He intentado hacerlo con una asp como me
dijiste, pero no funciona bien, este es el código:

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%Response.Buffer = True
dim carga,usuario,name
Session.TimeOut
for each name In Request.ServerVariables
if (name="REMOTE_ADDR") then
usuario=Request.ServerVariables(name)
'response.write(usuario)
end if
next
carga=Split(usuario,".")
if (carga(0)="XXX") then
if (carga(1)="XXX") then
if (carga(2)="XX") then
Session.TimeOut `0
end if
end if
else
Session.TimeOut
end if
response.redirect("default.aspx")
'response.write(Session.Timeout )%>
</body>

En principio esto cambia el TimeOut (lo he comprobado mediante
response.write(Session.TimeOut)), pero luego no se cumple, no se por qué
puede ser.

Gracias de nuevo
Respuesta Responder a este mensaje
#3 Gustavo Castillo
18/01/2005 - 18:50 | Informe spam
aca va la version mejorada y chequeada
-
-
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%Response.Buffer = True


direccionip=Request.ServerVariables("REMOTE_ADDR") ' asigno la Ip a una
variable
'COMIENZO A PARTIR EL STRING PARA DETERMINAR LA IP

POS1=INSTR(1, direccionip, ".",1)
r1=left(direccionip,pos1-1)
direccionip=mid(direccionip,pos1+1,100)
POS1=INSTR(1, direccionip, ".",1)
r2=left(direccionip,pos1-1)
direccionip=mid(direccionip,pos1+1,100)
POS1=INSTR(1, direccionip, ".",1)
r3=left(direccionip,pos1-1)
' TERMINO DE ASIGANARLE LAS VARIABLES
Response.Write("Aca esta la Ip por la cual entro: ")
response.Write(r1)
response.Write(".")
response.Write(r2)
response.Write(".")
response.Write(r3)
response.Write(".")
response.Write("xxx")
'COMPARO LA IP CON EL RANGO Q PERMITO INGRESAR
if r1 ="200" and r2 ="41" and r3 ="46" then
Session.TimeOut `0
r = " El tiempo fue asignado en 600"
else 'LA IP NO COINCIDE CON EL RANGO HABILITADO
r = " El tiempo fue asignado en 20"
Session.TimeOut
end if
response.Write("<br>")
response.Write(r)
'response.Redirect("default.aspx")
'response.write(Session.Timeout )
'ESPERO Q TE SIRVA SALUDOS GUS :D
%>
</body>
-
-
Basicamente, se detecta el rango 200.41.46.XXX y en base a eso asigna 600 o
20 yo lo probe y me funciono
espero q te sirva, cualquier cosa avisame

Un abrazo
Gustavo Castillo
MCP
http://www.elsoporte.com


"iñi" escribió en el mensaje
news:
Gracias por contestar, Gustavo. He intentado hacerlo con una asp como me
dijiste, pero no funciona bien, este es el código:

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%Response.Buffer = True
dim carga,usuario,name
Session.TimeOut
for each name In Request.ServerVariables
if (name="REMOTE_ADDR") then
usuario=Request.ServerVariables(name)
'response.write(usuario)
end if
next
carga=Split(usuario,".")
if (carga(0)="XXX") then
if (carga(1)="XXX") then
if (carga(2)="XX") then
Session.TimeOut `0
end if
end if
else
Session.TimeOut
end if
response.redirect("default.aspx")
'response.write(Session.Timeout )%>
</body>

En principio esto cambia el TimeOut (lo he comprobado mediante
response.write(Session.TimeOut)), pero luego no se cumple, no se por qué
puede ser.

Gracias de nuevo
Respuesta Responder a este mensaje
#4 iñi
19/01/2005 - 11:51 | Informe spam
Gracias otra vez más, Gustavo.

Tu código hace lo mismo que el mío, es decir, sí que cambia el valor de
Session.timeOut, pero luego ese valor debe volver a cambiarse en algún otro
sitio al iniciarse la aplicación, porque la sesión no caduca según el valor
que establezco mediante el código en cuestión. Donde podría estar siendo
modificado, en el web.config o en el global.asax por ejemplo?
Respuesta Responder a este mensaje
#5 iñi
19/01/2005 - 12:21 | Informe spam
Me he dado cuenta de que efectivamente, el web.config modifica el timeout, y
si lo suprimo de ahí tampoco hace caso a mi TimeOut, supongo que cogera el
valor Default del IIS que es 20 minutos si no me equivoco, de manera que de
nada sirve poner por delante el código anterior estando así las cosas. Si
teneis alguna idea de cómo conseguir lo que pretendo espero cualquier
sugerencia.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida