Foros del Web » Programando para Internet » ASP Clásico »

Impedir Doble Usuario

Estas en el tema de Impedir Doble Usuario en el foro de ASP Clásico en Foros del Web. Hola, Tengo una zona restringida a la cual se accede con usuario y clave, pero quisiera saber como hacer que dicho usuario NO se pueda ...
  #1 (permalink)  
Antiguo 14/04/2008, 12:12
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 17 años, 3 meses
Puntos: 0
Impedir Doble Usuario

Hola,

Tengo una zona restringida a la cual se accede con usuario y clave, pero quisiera saber como hacer que dicho usuario NO se pueda conectar nuevamente desde otra pc o en simultaneo.

Gracias anticipadas por su ayuda!

Miguel
  #2 (permalink)  
Antiguo 14/04/2008, 12:25
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

recomiendo usar el sessionid

es un numero unico que te asigna el server por Instancia de Navegaror (no asi por pestaña, las pestañas siguen con el mismo SessionID, pero almenos evitas se meta en dos maquinas).

+ obtienes el sessionid
+ insertalo en la tabla usuario
+ cuando el usuario entre a una pagina
+ validas su id (correo o como sea)
+ validas que sea el mismo sessionid
++ si es diferente le dices, has iniciaso sesion en otra maquina y lo botas de el sitio
++ si es el mismo que siga navegando

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 14/04/2008, 12:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Impedir Doble Usuario

Cita:
Iniciado por JuanRAPerez Ver Mensaje
recomiendo usar el sessionid

es un numero unico que te asigna el server por Instancia de Navegaror (no asi por pestaña, las pestañas siguen con el mismo SessionID, pero almenos evitas se meta en dos maquinas).

+ obtienes el sessionid
+ insertalo en la tabla usuario
+ cuando el usuario entre a una pagina
+ validas su id (correo o como sea)
+ validas que sea el mismo sessionid
++ si es diferente le dices, has iniciaso sesion en otra maquina y lo botas de el sitio
++ si es el mismo que siga navegando

suerte
Está bien...pero:

¿En qué momento lo borras?

¿O nunca lo borras y solamente actualizas? de esta manera solamente le darás acceso desde la nueva sesión, y al que botas es al anterior

Todas son preguntas, la verdad nunca lo he tenido que hacer (por fortuna) pero no se me hace que sea tan sencillo de controlar. ¿Alguien lo ha hecho?

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 14/04/2008, 12:50
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 17 años
Puntos: 5
Re: Impedir Doble Usuario

Mmm creo que seria asi:

El usuario se logea, se guarda su Session.id en la base de datos.

Las paginas seguras tienen un include donde se comprueba que el Session.id sea el mismo que el que esta en la base de datos, sino lo bannea, y limpia el Session.Id de la base de datos.

Si el Session.id cambia en la base de datos mientras un usuario esta navegando entre paginas seguras, es porque otro usuario ha entrado con el mismo login; y como se ha limpiado el Session.id en la base de datos, le pasara lo mismo que al primero, por lo tanto tambien sera banneado.

Jajaja, que imaginacion!! La cuestion es... funcionara??
  #5 (permalink)  
Antiguo 14/04/2008, 13:10
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Impedir Doble Usuario

Asu que complicado.

seria un poco mas comodo si alguien pudiera hacer el favor de colocar el codigo


Miguel
  #6 (permalink)  
Antiguo 14/04/2008, 13:39
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 17 años
Puntos: 5
Re: Impedir Doble Usuario

Cita:
Iniciado por miguelpt Ver Mensaje
Asu que complicado.
De hecho si, es bastante complicado... porque tu puedes saber cuando un usuario entra a tu pagina y se logea, pero no cuando sale de ella...


Cita:
Iniciado por miguelpt Ver Mensaje
seria un poco mas comodo si alguien pudiera hacer el favor de colocar el codigo
Utilizaste la palabra equivocada... Los que te respondan a tu inquietud no lo hacen porque quieren hacer tu trabajo sin que hagas nada tu mismo, sino que quieren ayudarte en las dudas que se te presenten. Ya se te explico una posible logica para resolver tu problema, busca en Google o aqui en el foro sobre las Session, el Global.asa, guardar/leer informacion en la base de datos, y trata de hacer algo, postea tu codigo y de a poco y entre todos lo resolvemos. Ten en cuenta que no es un simple codigo del estilo "Como remplazo palabras en una oracion", sino que involucra mas cosas.

Disculpa si este comentario te parece ofensivo, es solo mi manera de ver las cosas.

Saludos
  #7 (permalink)  
Antiguo 14/04/2008, 13:48
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Impedir Doble Usuario

Cita:
Iniciado por i_e_s27 Ver Mensaje
Utilizaste la palabra equivocada... Los que te respondan a tu inquietud no lo hacen porque quieren hacer tu trabajo sin que hagas nada tu mismo, sino que quieren ayudarte en las dudas que se te presenten. Ya se te explico una posible logica para resolver tu problema.
A menos que esté dispuesto a compartir una buena parte de las utilidades

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 15/04/2008, 09:17
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

jejejej haganme el tabajo (peguenme el codigo y zas les digo si funciona)... sin comentarios


volviendo al tema u_goldman es un problema bien hecho.

el chiste es

+ actualizo el sessionid en la tabla
+ en cada pagina verifico si el usuario y el sessionid es el mismo
+ si inicia sesion en otra pc, es logico que ya no usara la sesion que dejo en la pc1 por ende si trata de entrar a una opcion valido y como no es el mismo session id lo fuerzo a logiarse de nuevo

eso lo que logra es solo mantener un sessionid activo por usuario que cada vez que digita su usuario y pass se actualiza. Asi evitas que el usuario entre dos veces.

En una misma pc, puede tener dos o tres pestañas (separadores) por navegador los cuales reciben el mismo sessionid, eso quiere decir que el usuario puede estar haciendo muchas cosas en una copia (instancia) de su navegador con multiples pestañas.

jajaja un relajo no?

efectivo solo para forzar una sola copia de navegador por usuario. asi definamolo.
__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 15/04/2008, 10:16
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Impedir Doble Usuario

Cita:
Iniciado por JuanRAPerez Ver Mensaje
.....+ si inicia sesion en otra pc, es logico que ya no usara la sesion que dejo en la pc1 por ende si trata de entrar a una opcion valido y como no es el mismo session id lo fuerzo a logiarse de nuevo

...
y si por casualidad, el usuario cierra el explorador, y vuelve a entrar??? lo dejara logearse???

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #10 (permalink)  
Antiguo 15/04/2008, 10:21
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

al entrar al sitio
como el navegador tiene otra session obtenida de el server
al validar la session con el id de el usuario reconoce que es otra sesión
entonces se le pide de nuevo el usuario y el pass (dado que la session no corresponde)
al ingresar de nuevo al sistema el sessionid se actualiza y le permite navegar

EDITO: no lo deja loguearse automaticamente, le pide las credenciales, actualiza en la base de datos el sessionid actual, y lo deja navegar sin problemas.
__________________
JuanRa Pérez
San Salvador, El Salvador
  #11 (permalink)  
Antiguo 15/04/2008, 10:31
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 1 mes
Puntos: 535
Re: Impedir Doble Usuario

Sería algo así como en el mésenyer... que cuando te olvidás una session abierta en un equipo y vas a otro e iniciás sesión, te permite ingresar pero a la sesión original la mata. ¿sería así el planteo?
__________________
...___...
  #12 (permalink)  
Antiguo 15/04/2008, 10:34
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

sip
ese seria el planteamiento

permitir la ultima sessionid guardada como la activa

asi cada vez que el usuario inicia sesion se le actualiza el campo
y se valida

el sessionid de el navegador contra el sessionid almacenado


ya pego mas o menos lo que expongo en el otro post
__________________
JuanRa Pérez
San Salvador, El Salvador
  #13 (permalink)  
Antiguo 15/04/2008, 10:43
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

Funcion validar usuario:

+ Funcion ValidarUsuario
+ if Session("aut") = False then
++ redirecciono
+ obtengo el sessionid actual que el servidor asigno a la copia del navegador
+ SELECT ... WHERE id_usuario = "&id_usuario&" and sessionID = '"&sessionID&"'
++ si se cumple, es la session correcta, si no redirecciono

si inicio en la pc1 y le dio el sessionid = 1212
lo actualice en la base
el usuario deja la pc, se va a otra (y de la el sitio abierto con sus credenciales y todo)
inicia sesion en la pc2, y le dio el sessionid = 2525

otro usuario (usuario2) esta en la pc1, ve que dejaron una pagina cargada, y dice "eliminar todos los registros" y el usuario2 dice, borrare los datos de este amigo que dejo este sitio abierto, da clic en el enlace y la funcion valida que no es el sessionid correcto, dado que

1 el session id de esa pc es el 1212, o
2 ya caduco por el tiempo de caducidad de las sesiones

entonces le haces un response redirect a errortalcosa.asp?txterror=2

en esa pagina el error 2 para iprmir es:

has iniciado sesion en otra ventana de navegador, o otra pc, verifica!, si este no es el caso reinicia tu contraseña que probablemente quedo almacenada en algun navegador!

pasos para cambiar de contraseña....

y todo el texto que se les ocurra....

digo, eso es lo que hago, no se si sea correcto, per me funciona

1 usuario con un unico sessionid valid.

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #14 (permalink)  
Antiguo 15/04/2008, 16:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Impedir Doble Usuario

Si...entonces "los pateas" con cada nueva sesión, gracias por la explicación.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 15/04/2008, 19:39
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

Correcto, es lo único que se me vino a la mente y me ha funcionado.

veremos si el amigo de el mensaje inicial se anima a leer este post y armar una idea fucional

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #16 (permalink)  
Antiguo 20/04/2008, 15:52
 
Fecha de Ingreso: abril-2007
Mensajes: 53
Antigüedad: 18 años
Puntos: 0
Re: Impedir Doble Usuario

Pregunto:
Y si se hace con el Ip de la maquina con que se logue el Usuario?

Ejm:
a la tabla de Usuarios le agrego un campo Iplogin donde el usuario al loguearce, actualiza ese campo con el ip actual de su maquina y se graba.
Entonces en mi pagina tengo un boton de Cerrar Sesion que me cierra la sesion cuando quiero salirme del sitio, a ese boton le pongo un javascript que al cerrar sesion me envie a la Db exactamente al campo Iplogin un valor NULL o vacio? para q cuando salga del sitio se borre la Ip grabada previamente?

Mi pregunta es si el sitio se cierra Automaticamente porque cauduco el Session si ay algun codigo para hacer que al caducar la session haga un update a una tabla y borre automaticamente algo?

EEEE no se si esto se pueda? quizas sono como loco jajaj pero no se que piensan?
  #17 (permalink)  
Antiguo 21/04/2008, 09:12
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 5 meses
Puntos: 27
Re: Impedir Doble Usuario

jaja sin comentario

sigo con mi método, no permito usuarios mas que con la sessionid
evito que entre en dos pc y zas que este haciendo cosas desde dos lados

y si la sesion caduca, es porque anda de ocioso en 10 minutos, es mas que suficiente para soltar una sesión no creen?

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #18 (permalink)  
Antiguo 08/11/2008, 17:29
 
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Impedir Doble Usuario

Cordial saludo,
lo que no entiendo muy bien es como el servidor compara la sessionid que tiene almacenada con la del cliente para autenticar la información en caso de que este no posea cookies

gracias
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 13:24.