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

Session en Global.asax

Estas en el tema de Session en Global.asax en el foro de .NET en Foros del Web. Hola!! Estoy intentado "meter" a un usuario en un role cuando se autentifique usando estas lineas en global.asax: Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e ...
  #1 (permalink)  
Antiguo 17/04/2004, 05:07
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Session en Global.asax

Hola!!
Estoy intentado "meter" a un usuario en un role cuando se autentifique usando estas lineas en global.asax:

Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)

Dim userId As IIdentity = Context.User.Identity
Dim rol As String = Session("UsuarioActual").tipo
Dim() As String = {rol}
Context.User() = New GenericPrincipal(userId, s)

End Sub


Anteriormente en el webform de login he creado una variable sesión con su nombre de usuario, tipo (el que será su rol), etc Bueno, el caso es que da este error "El estado de sesión no está disponible en este contexto" que supongo que se referirá a que no puedo leer esa variable session en global.asax.
Qué puedo hacer?


Gracias. Un saludo.
  #2 (permalink)  
Antiguo 19/04/2004, 10:46
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
mmm... , en mi caso para hacer la autentificacion (me imagino que tambien estás usando autentificacion por medio de forms) lo que hago es que tengo en mi BD una tabla llamada roles y dependiendo del usuario que se firme recoger dichos roles y asignarlos al GenericPrincipal.

Ejemplo.

Cita:
Dim roles() As String
roles = 'Llamo a una funcion que cosulte mi BD dependiendo del usuario que se haya firmado

Dim roleStr As String = ""
Dim role As String

'Recorro los roles y los guardo en una variable separados por ;
For Each role In roles
roleStr += role
roleStr += ";"
Next role


'Después creo un ticket de una cookie para guardar el usuario, expiracion, los roles, etc (no es cookie persistente)

Dim ticket As New FormsAuthenticationTicket (1, _
Context.User.Identity.Name, _
DateTime.Now, _
DateTime.Now.AddHours(1), _
False, _
roleStr)

'encripto para mantenter seguridad en la cookie.

Dim cookieStr As String = FormsAuthentication.Encrypt (ticket)

'Envío la cookie al cliente:

Response.Cookies("roles").Value = cookieStr
Response.Cookies("roles").Path = "/"
Response.Cookies("roles").Expires = DateTime.Now.AddMinutes(1)


Context.User = New GenericPrincipal(Context.User.Identity, roles)
Espero que con este ejemplo te des una mejor idea.
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 19/04/2004, 12:43
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Gracias por responder.

He probado tal cual me has dicho y parece que no autentifica o no mete en el rol al usuario... no sé lo que pasa, pero cuando intento entrar en una parte restringida sólo a usuarios de un determinado rol me vuelve a redireccionar a la web de login y eso que realmente parece que el usuario sí se ha autentificado y está en ese rol............ no sé, todo esto me está rayando.

Quizá pueda ser problema del web.config o es que haciendolo así hay que ir comprobando en el Page_Load si el usuario está en un rol?

Un saludo.
  #4 (permalink)  
Antiguo 19/04/2004, 14:14
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Creo que será mejor que primero le des una leída a éstos links:

http://www.15seconds.com/issue/020220.htm

http://www.ondotnet.com/pub/a/dotnet...rmsauthp1.html

http://www.xoc.net/works/tips/forms-authentication.asp


Espero te sirvan . . .
  #5 (permalink)  
Antiguo 20/04/2004, 05:22
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Ahora sí, el tercer link me ha sido muy útil. Gracias RootK, no veas el tiempo que llevaba con la puñetera autentificación.

Saludos.
  #6 (permalink)  
Antiguo 20/04/2004, 08:48
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
no veas el tiempo que llevaba con la puñetera autentificación.
Saludos
__________________
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:52.