Foros del Web » Programación para mayores de 30 ;) » .NET »

alguien por favor redireccionar cuando termine la session

Estas en el tema de alguien por favor redireccionar cuando termine la session en el foro de .NET en Foros del Web. Hola amigos ayudeme por favor, quiero que cuando termine la session en asp .net me envie a una pagina que yo determinare, ya lo probe ...
  #1 (permalink)  
Antiguo 13/06/2005, 14:10
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
alguien por favor redireccionar cuando termine la session

Hola amigos ayudeme por favor, quiero que cuando termine la session en asp .net me envie a una pagina que yo determinare, ya lo probe con un response.redirect en el end_session del global pero no funciona esa instruccion ahi, por que.... bueno eso no importa lo que querio es que de alguna manera se redireccione a la pagina de inicio o alguna otra.
  #2 (permalink)  
Antiguo 13/06/2005, 23:14
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
Eso no se puede hacer al no ser que tengas una acción de abondono de session, pero si lo que intentas es que cuando expire el tiempo de session redireccione, "NO" se puede.
Puedes mirar algo sobre AJAX, o también puedes comprobar en cada página si la session está activa, y en caso contrario redireccionar a logina, o hacerlo por el webconfig, pero no puedes mandar al usuario algo si el usuario no lo ha pedido.

¿Por que pones 3 veces el mismo post?
  #3 (permalink)  
Antiguo 14/06/2005, 06:01
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 2 meses
Puntos: 1
Lo que podrías hacer es refrescar la página cuando termine la sesión y así, cuando se vuelva a cargar y la sesión haya caducado te volverá a enviar a la página de login (o la que sea). En el Page_Load de cada página deberías poner:

Código:
Response.AddHeader("Refresh", Convert.ToString(Session.Timeout * 60) + 5);
Quizá te sirva. Saludos
  #4 (permalink)  
Antiguo 14/06/2005, 07:54
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Por que nadie sabe como , la verdad es que si se puede con un codigo que esta en la web del guille pero lo malo es que esta c# lo adapate a codigo asp .net pero no funciona por alguna razon que todavia desconosco, por eso he preguntado en este foro pero nadie sabe.... como hacerlo,
  #5 (permalink)  
Antiguo 14/06/2005, 08:19
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Este es el link al ejemplo del Guille que sugiere nuestro amigo:

http://www.elguille.info/colabora/NE...ession_End.htm

Si alguien lo prueba que comente como le ha funcionado... Es un tema que parece que no tenemos controlado..
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 14/06/2005 a las 08:51
  #6 (permalink)  
Antiguo 14/06/2005, 09:42
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Correcto? Recuerden converirlo a codigo asp .net.....!!!!!!!
  #7 (permalink)  
Antiguo 14/06/2005, 09:54
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Cita:
Correcto? Recuerden converirlo a codigo asp .net.....!!!!!!!
Mas bien a código vb.net no..?

Recuerda que c#, vb.net, j#, etc son lenguajes .Net... asp.net es la tecnología para aplicaciones web..
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #8 (permalink)  
Antiguo 14/06/2005, 10:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Exactamente como tu dices, perdon por la equivocación.
  #9 (permalink)  
Antiguo 15/06/2005, 08:16
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Amigos por favor aun no encuentran la respuesta al problema?......
  #10 (permalink)  
Antiguo 15/06/2005, 09:00
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Shakaio, en el link que puso moNTeZIon viene un ejemplo..

mira:
Cita:
private void Page_Load(object sender, EventArgs e) {
Response.AddHeader("Refresh",Convert.ToString((Ses sion.Timeout * 60) + 5));

if(Session["SesionActiva"]==null)
Response.Redirect("Login.aspx");
}
en vb.net sería:
Cita:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

...
...
Response.AddHeader("Refresh",Convert.ToString((Ses sion.Timeout * 60) + 5))

If (Session("SesionActiva") Is Nothing) Then
Response.Redirect("Login.aspx")
End IF

End Sub
Ésto no te sirve.??
  #11 (permalink)  
Antiguo 15/06/2005, 09:41
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
La verdad me gustaria que alguien lo pruebe todo el codigo que dice en ese link desde crear la clase hasta que corra la aplicación , por que yo si converti todo el codigo a vb .net pero al momento que termina la session simplemente no funciona no me arroja ninugun error ni nada de nada, lo he corrido paso por paso y no se que es lo que pasa si alguien encuentra la solución me sería de gran ayuda.
  #12 (permalink)  
Antiguo 15/06/2005, 10:13
 
Fecha de Ingreso: mayo-2004
Ubicación: Managua, Nicaragua
Mensajes: 281
Antigüedad: 20 años
Puntos: 0
Fijate en el codigo fuente html, tiene que haber algo parecido ya sea en JavaScript tipo:
<META HTTP-EQUIV="Refresh" CONTENT=20;URL=http://www.tupagina.aspx>

Sino el homologo en JavaScript setTime, si no lo puso, es que el comando no tuvo efecto
__________________
Julio Hernández
  #13 (permalink)  
Antiguo 16/06/2005, 07:44
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Aun no lo he probado con esta recomendación, espero que funcione....
  #14 (permalink)  
Antiguo 16/06/2005, 08:15
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
mira

De esta forma cada vez que el usuario entre en una pagina sino tiene variable de session le redirecciona a donde le digas:

primero pones esto:
this.AcquireRequestState += new System.EventHandler(this.Global_AcquireRequestStat e);
dentro de InitializeComponent

y te creas:

private void Global_AcquireRequestState(object sender, System.EventArgs e)
{
//Response.Write("<script>alert('"+Request.Path+"'); </script>");
if(!Request.Path.EndsWith("login.aspx"))
{

if(Session["Usuario"] == null)
{
//Response.Write("<script>alert('Su session ha terminado');</script>");
Response.Redirect("login.aspx");
Response.End();
}

}
}

entiendes???
  #15 (permalink)  
Antiguo 20/06/2005, 11:32
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Lo voy a probar, gracias
  #16 (permalink)  
Antiguo 24/06/2005, 08:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 36
Antigüedad: 19 años, 4 meses
Puntos: 1
De acuerdo Asunto Solucionado

Hola Shakaio. Yo tambien tuve el mismo problema. parece tranca pero realmente es fácil hay dos formas de hacer:

Primero: tienes que pegar el siguiente codigo en el procedimiento Session_End del Global.asax:

System.Web.HttpContext.Current.Response.Redirect(" FormSessionTerminada.aspx", True)

Lo que hace es enviarte a la pagina de cerrar sesion que uno lo indica en un determinado tiempo de inactividad siempre y cuando estes trabajando con ventanas hijas.

Segundo: Tienes que pegar el siguiente codigo en todos los eventos que realice la pagina:

Dim sda As Double
sda = Me.Session.Keys.Count
If sda = 0 Then
Response.Redirect("FormSessionTerminada.aspx")

End If

Lo que hace en contar todas las sesiones que estan activas. Cuando las sesiones expiran retorna un valor cero en la variable "sda" lo cual cumple la condición y te envía a la pagina cerrar sesion.

Espero que te sea de utilidad. Pues a mi si me sacó de un problema. Cualquier cosa me avisas en el foro. Bye
  #17 (permalink)  
Antiguo 02/09/2008, 12:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: alguien por favor redireccionar cuando termine la session

'La clase base

Public Class PaginaBase
Inherits System.Web.UI.Page

Protected Overridable Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) + 5))

If IsNothing(Session("SesionActiva")) Then
Response.Redirect("Expirado.aspx")
End If
End Sub
End Class


'Pagina de Inicio
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Session("SesionActiva") = Session.SessionID

Response.Redirect("Pagina2.aspx")
End Sub

'Pagina 2
Public Class WebForm1
Inherits PaginaBase

Protected Overrides Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Controla el fin de session
MyBase.Page_Load(sender, e)

'todo: hacer algo
End Sub
End Class
  #18 (permalink)  
Antiguo 02/09/2008, 12:52
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Respuesta: alguien por favor redireccionar cuando termine la session

Lo que yo hago es controlarlo desde javascript ya que si lo ponemos dentro del global.asax la sesion hará el redireccionamiento siempre y cuando haya una petición pero lo que nos interesa es que por ejemplo nos avise que ya termino (un alert por ejemplo) y automaticamente haga el redirecto

Ejemplo:

Código:
<script language="javascript" type="text/javascript">				
		var iMinute = <%= Session.TimeOut + 1%>;	
		function showTimer() {				
				lessMinutes();				
		}		
		function lessMinutes()
		{
			iMinute -= 1;										
			if (iMinute==0) {
				alert("Su sesión ha expirado,\nserá redireccionado a la página de Log In");
				window.location.href = '<%= Page.ResolveUrl("~/PaginaLogin.aspx") %>';
			}						
		
			window.setTimeout("lessMinutes();",60000)
		}				
</script>
p.d. Este post ya es algo viejo jeje

Saludos y espero que les sirva
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:13.