Foros del Web » Programando para Internet » ASPX (.net) »

Error con el response.redirect

Estas en el tema de Error con el response.redirect en el foro de ASPX (.net) en Foros del Web. hola estimados Necesito que desde una clase pueda controlar la perdida de session y me redireccione a una pagina que avise sobre la perdida de ...
  #1 (permalink)  
Antiguo 22/09/2011, 16:13
 
Fecha de Ingreso: enero-2009
Mensajes: 201
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Error con el response.redirect

hola estimados



Necesito que desde una clase pueda controlar la perdida de session y me redireccione a una pagina que avise sobre la perdida de session.

el codigo que tengo es el siguiente




Código vb:
Ver original
  1. Imports System.Web
  2.  
  3. Public Class ClassVariablesSession
  4.  
  5.     Inherits System.Web.UI.Control
  6.  
  7.     Public cSeg As ClassSeguridad = ClassSeguridad.Instanciar
  8.     Public sMD5UserName As String = ""
  9.     Public sMD5RolName As String = ""
  10.     Public sMD5RolId As Integer = 0
  11.     Public sMD5EmpresaId As Integer = 0
  12.     Public sMD5UserId As Integer = 0
  13.     Public sMD5IPConectado As String = ""
  14.     Public sMD5HOSTConectado As String = ""
  15.     Public sMD5SessionState As String = ""
  16.  
  17.     Public Sub RecuperarVariablesSession()
  18.         Try
  19.             With HttpContext.Current
  20.                 If .Session("UsuarioConectado") = Nothing Or .Session("UsuarioConectado") = "" Then
  21.                     HttpContext.Current.Response.Redirect("../index.html")
  22.                 End If
  23.  
  24.                 sMD5UserName = cSeg.Desencriptar(.Session("UsuarioConectado"))
  25.                 sMD5RolName = cSeg.Desencriptar(.Session("ROL_ACTUAL"))
  26.                 sMD5RolId = CInt(cSeg.Desencriptar(.Session("ROL_ID")))
  27.                 sMD5EmpresaId = CInt(cSeg.Desencriptar(.Session("EMPRESA_ID")))
  28.                 sMD5UserId = CInt(cSeg.Desencriptar(.Session("USERCONN_ID")))
  29.  
  30.                 sMD5IPConectado = cSeg.Desencriptar(.Session("IP_CONECTADO"))
  31.                 sMD5HOSTConectado = cSeg.Desencriptar(.Session("HOST_CONECTADO"))
  32.                 sMD5SessionState = cSeg.Desencriptar(.Session("SessionState"))
  33.             End With
  34.         Catch ex As Exception
  35.  
  36.         End Try
  37.     End Sub


La clase me da error.
¿Cual puede ser el error?
¿esta correcto lo que intento hacer?
Si no fuese correcto ¿cual es la forma mas eficiente de poder controlar la perdida de sesion?

Muchas gracias, estoy atento a sus comentarios
__________________
Francisco Birrer
Arquitecto de Software e-process
http://www.universite.cl
  #2 (permalink)  
Antiguo 22/09/2011, 16:43
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Error con el response.redirect

¿Qué error te aparece? Si es por el response, supongo que debes utilizar ~/index.html en el caso que index se encuentre en la raíz.
  #3 (permalink)  
Antiguo 22/09/2011, 17:03
 
Fecha de Ingreso: enero-2009
Mensajes: 201
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Error con el response.redirect

hola gracias por responder.

Me da el error {System.Threading.ThreadAbortException}
en la linea


Código PHP:
Ver original
  1. HttpContext.Current.Response.Redirect("../index.html")
__________________
Francisco Birrer
Arquitecto de Software e-process
http://www.universite.cl
  #4 (permalink)  
Antiguo 22/09/2011, 17:19
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Error con el response.redirect

ThreadAbortException se relaciona con redireccionamientos. Creo que no se termina de ejecutar el response. Intenta con:

Código:
 
HttpContext.Current.Response.Redirect("pagina", false)
He hecho esto en algunas clases y me funciona. Sino es esto, copia lo más importante del mensaje obtenido en el try catch y nos dices que te aparece.
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 21:39.