Ayuda!!!!!!! Módulo HTTP

14/07/2004 - 17:35 por jaimito | Informe spam
Hola compañeros...

Tengo un aplicación ASP.NET en donde se utiliza unas
variables de Session para guardar información sobre el
usuario que ingresó al sitio.

Para que tener una idea de lo que comento coloco un ejemplo:

'EJEMPLO DE LA PÁGINA LOGIN.ASPX
'Código en el evento Page_Load.
'Se supone que el usuario fue validado con contraseña
'
'el usuario digitado en la página
Session("UserName") = txtUserName.txt

'otros datos traidos de la base de datos tras verificación
Session("UserId") = CStr(DataReader("Id"))
Session("UserEmail") = CStr(DataReader("Email"))
Session("UserPhone") = CStr(DataReader("Phone"))

'FIN DEL EJEMPLO

Como pueden ver utilizo unas variables de Session común y
silvestre. Tal cual como lo hacemos a menudo.

Ahora el punto cruel.

Estoy haciendo un módulo HTTP con el fin de llevar una
serie de estadísticas del usuario que se logueó y las
páginas que visitó.

Para lo anterior, me engancho al evento BeginRequest, así:

'COMIENZA LA CLASE
Public Class TestModule
Implements IHttpModule

Public Sub Init(ByVal app As HttpApplication) _
Implements IHttpModule.Init

AddHandler app.BeginRequest, AddressOf MyApp_BeginRequest

End Sub

Public Sub Dispose() Implements IHttpModule.Dispose
'
End Sub

End Class
'FINALIZA LA CLASE

Ahora desde mi subrutina llamada MyApp_BeginRequest, la
cual es llamada en cada solicitud de página, intento
acceder a las variables de Session que les mostré arriba
(configuradas en la página LOGIN.ASPX).

Private Sub MyApp_BeginRequest
(ByVal s As [Object], ByVal e As EventArgs)

Dim app As HttpApplication = CType(s, HttpApplication)
Dim ctx As HttpContext = app.Context

Dim strUserName As String

'Aquí intento acceder por lo menos a la variable
'de Session que contiene el nombre del usuario, pero me
'generar error debido a que el objeto o miembro Session
'viene como Nothing.
strUserName = CStr(ctx.Session("UserName"))

End Sub

Como comentarié en el código inmediatamente anterior el
miembro Session viene a Nothing y por ende no puedo acceder
a las variables de Session creadas en la página ASPX.

¿Alguna idea del por qué esto?
¿Cómo podría hacer para acceder a dicho miembro?

Mil gracias.
 

Leer las respuestas

#1 jaimito
14/07/2004 - 19:07 | Informe spam
Gracias Gustavo, lo probaré.

Para utilizar las variables de sesión deberias heredar


también la interfaz IRequiresSessionState, o sea deberias
declarar la clase asà­:

Public Class TestModule Implements IHttpModule,


IRequiresSessionState

Espero que te funcione bien.
Suerte!
Gustavo A. Cantero
Microsoft Certified Solution Developer
DCE Tercera Estrella

Preguntas similares