• Viernes 15 de Noviembre de 2024, 03:43

Autor Tema:  Una Sola Sesión En Asp.net!  (Leído 3010 veces)

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Una Sola Sesión En Asp.net!
« en: Sábado 22 de Octubre de 2005, 07:33 »
0
Hola a todos!

Y este problema:
Citar
Los usuarios estan en una tabla de la base de datos. Y
lo que se requiere es que si un usuario ya inicio sesion no pueda volver a
hacerlo.

A mi se me ocurre agregar un campo a la Base de Datos, para almacenar una variable que indica si inicio sesion o no?. De tal manera que cada vez que inicie sesion verifique si ya inicio o no... que les parece esta solución?.. tienen otra?...

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

cabeza_nispero

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Una Sola Sesión En Asp.net!
« Respuesta #1 en: Domingo 23 de Octubre de 2005, 19:05 »
0
Pues a mi también me parece la solución más simple y _barata_ (si es que no se quiere utilizar los otros modos de estado de sesión)

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Una Sola Sesión En Asp.net!
« Respuesta #2 en: Martes 25 de Octubre de 2005, 01:20 »
0
:huh: No me parece mucho... porque que tal si en la tabla ya esta el campo que indica si inicio o no session pero ahora para actualizar esta tabla el usuario siempre tendria que cerrar session desde sistema, pero que ocurre si por n-factores el usuario pierde la session sin haber cerrado esta desde sistema(pudo borrar sin querer cookies, etc.) en este caso en la tabla nos mostrara que supuestamente el usuario inicio sesion pero realmente no esta, por eso no creo que sea lo mas conveniente.

Yo verificaria alguna de la propiedades de autenticacion, como por ejemplo la existencia del nombre de usuario, etc. con ASP.NET tenemos todas estas ventajas.

Salu2
 :comp:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Una Sola Sesión En Asp.net!
« Respuesta #3 en: Martes 25 de Octubre de 2005, 06:10 »
0
Citar
propiedades de autenticacion

Se puede?, como asi?. Lo que yo se es que con autenticación vas a ver si el usuario si el usuario exite... otra cosa es saber si inicio session... porque eso no lo manejas con autenticacion sino con sesiones....


Citar
la existencia del nombre de usuario
Eso es lo que ayudara mucho, saber si los usuario que inician sesión se guardan en alguna parte del servidor....porque asi facil que se hace..

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Una Sola Sesión En Asp.net!
« Respuesta #4 en: Martes 25 de Octubre de 2005, 18:04 »
0
Hola, bueno quizas no sea la mejor solucion pero es una opcion.

Mira tienes la posibilidad de verificar el valor de

Código: Text
  1. HttpContext.Current.User.Identity.Name
  2.  

Ahora esto te devuelve el nombre del usuario que se autentico, bien si le das mas mano a esto veras que por defecto esta propiedad es = ""

Por lo tanto no tendrias que validar

Código: Text
  1. If HttpContext.Current.User.Identity.Name is nothing then
  2. End IF
  3.  

Esto se saltaria la validacion, asi que tienes que usar

Código: Text
  1. If HttpContext.Current.User.Identity.Name = "" Then
  2. End If
  3.  

Esto si te serviria ya que si diera blanco es decir = "" entonces el user no estaria autenticado, etc. etc. lo demas ya es historia..

Salu2
 :comp:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

cabeza_nispero

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Una Sola Sesión En Asp.net!
« Respuesta #5 en: Miércoles 26 de Octubre de 2005, 20:26 »
0
IMHO, eso no sirve, ya que por decirlo así, por cada usuario que se conecta a la aplicación se crea una sesión diferente. Sólo intenta probar con 2 navegadores diferentes en la misma máquina y aplicando el método que mencionas, sepas si en uno inicié sesión o no...

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Una Sola Sesión En Asp.net!
« Respuesta #6 en: Miércoles 26 de Octubre de 2005, 21:33 »
0
Citar
IMHO, eso no sirve, ya que por decirlo así, por cada usuario que se conecta a la aplicación se crea una sesión diferente. Sólo intenta probar con 2 navegadores diferentes en la misma máquina y aplicando el método que mencionas, sepas si en uno inicié sesión o no...

Pues si tienes razon, creo que no entendi bien la pregunta, pero en fin, bueno para evitar el logueo de diferentes maquinas con las mismas credenciales, personalmente le veo 2 posibles soluciones(quizas no las mejores pero algo es algo  B) ).

* Primero como dijeron anteriormente agregar un campo en la tabla y actualizar la misma al inicio de session, al cierre de session, esta ultima para evitar que el usuario sigamos haya cerrado session se prodria colocar un procedimiento que actualice la tabla en el Global.asax en el Session_OnEnd asi de esta forma se tiene mas controlada la situacion.

* Ahora otra solucion seria crear una coleccion como variable de aplicacion en el global.asax y luego al logueo ir agragando los users a dicha coleccion, en el login se implementara si dicho user esta en la coleccion y se validara.

Nota.- La primera opcion es la mas economica hablando de recursos, pero la segunda opcion es una sugerencia en caso de no poder alterar tablas de usuarios

Suerte!
 :comp:  :hola:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax