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

Controlar el fin de sesion de un usuario

Estas en el tema de Controlar el fin de sesion de un usuario en el foro de .NET en Foros del Web. Hola, alguien sabria explicarme lo sig: tengo que controlar cuando el usuario termina de usar el sistema. Tengo una bd de usuarios donde cargo un ...
  #1 (permalink)  
Antiguo 05/12/2003, 08:52
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Controlar el fin de sesion de un usuario

Hola, alguien sabria explicarme lo sig: tengo que controlar cuando el usuario termina de usar el sistema. Tengo una bd de usuarios donde cargo un campo que dice que el usuario esta activo en este momento, y tengo que ponerlo en desactivado cuando el usuario deje de usar el sistema. Como controlo el fin de la sesion del usuario? En donde pregunto por el estado de sesion del usuario?
Si alguien sabe como hacerlo, me lo puede pasar
Gracias
Paola
  #2 (permalink)  
Antiguo 08/12/2003, 10:37
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
Hola pao... esta utilizando algun tipo de autentificacion para los usuarios..??? porque una forma que se me ocurre es que si lo estas haciendo con autentificacion de forms en tu web.config le des un tiempo de sesion de 20 min.
Ejemplo.

Cita:
<authentication mode="Forms">
<forms name=".ASPXAUTH" protection="All" timeout="20"/>
</authentication
>

y con ello automaticamente si el usuario ya cerró su browser su sesion termina.


Ahora.. otra cosa que puedes hacer es poner un boton que sea como un LogOff y que en tu bd lo registres como no activo.

Pero quisiera saber como estas haciendo la autentificacion.

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 09/12/2003, 12:35
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Para controlar eventos al incicio y fin de sesion de un usuario debes emplear el archivo GLOBAL.ASAX;

por ejemplo, para modificar el valor del campo de la base de datos cuando el usuario esta activo, dentro de este fichero pondriamos:


<script language="VB" runat="server">

Sub Session_Start(src as Object, e as EventArgs)

' Aqui pondriamos los eventos correspondientes al inicio
' de sesion

End Sub


Sub Session_End(src as Object, e as EventArgs)

' Aqui pondriamos los eventos correspondientes al final
' de sesion

End Sub

</script>



Cuando se ejecuta el evento Session.Abandon() de la sesión de un usuario, pasaría a ejecutarse el codigo dentro de session_end
Lo que ahora mismo no se me ocurre es como pasarle el nombre de usuario, para que realice la actualización en el campo correspondiente al usuario... investigaremossssssss
  #4 (permalink)  
Antiguo 09/12/2003, 12:41
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno, se me ocurre que para recuperar el nombre de usuario podríamos hacer:

en Session_start:

Session("nomUsuario") = nombreUsuario

y en Session_end

nombreUsuario = Session("nomUsuario")


habría que probar así, a ver...
  #5 (permalink)  
Antiguo 11/12/2003, 12:19
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Una forma mejor:

nombreUsuario = User.Identity.Name

  #6 (permalink)  
Antiguo 27/01/2004, 19:07
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 3 meses
Puntos: 0
Exclamación

Importante: Todo lo anterior esta muy bien excepto que el Session_end solo funciona cuando declaras en el web.Config el siguiente codigo:
system.web>
<sessionState
mode="InProc"
timeout="2">
</sessionState>
</system.web>

Esto para que funciones en modo InProc, de otra manera nunca funciona el Session_end del Global.asax

Saludos
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 06:25.