| |||
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??? |
| |||
![]() ![]() 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 |