|  |||
|      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.     |  
  
  |  |||
|      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:
 Quizá te sirva. Saludos  Response.AddHeader("Refresh", Convert.ToString(Session.Timeout * 60) + 5);
   |  
  
  |  |||
|      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,     |  
  
  |  ||||
|      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  |  
  
  |  ||||
|      Cita:  Mas bien a código vb.net no..?Correcto? Recuerden converirlo a codigo asp .net.....!!!!!!!    ![]() 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  |  
  
  |  ||||
|      Shakaio, en el link que puso moNTeZIon viene un ejemplo..   mira:  Cita:  en vb.net sería: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"); }  Cita:  Ésto no te sirve.??  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    |  
  
  |  |||
|      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.     |  
  
  |  |||
|      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  |  
  
  |  ||||
|      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???  |  
  
  |  |||
      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    |  
  
  |  |||
|      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  |  
  
  |  ||||
|      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:
 p.d. Este post ya es algo viejo jeje<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>
Saludos y espero que les sirva 
				__________________   Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net  |