Sistema monousuario

12/03/2007 - 17:37 por Oswaldo | Informe spam
¡Que tal foro?

Tengo un sitio web que requiere autentificación para entrar, para lo cual se
crean cuentas de usuarios con cierto perfil y permisos. Se guardan los
usuarios y su psw encriptado en una tabla (SQL Server). La autentificación es
validando al usuario en dicha tabla. La cuestión es que como lograr que para
cada una de las cuentas del sistema solo pueda haber una sesión abierta, esto
es que no puedan estar 2 personas trabajando con el mismo usuario.

Que me sugieren para resolver dicho problema?

(había pensado en actualizar en una tabla un campo boleano que indica que ya
está firmado un usuario, pero no habría forma de saber en que momento
exactamente el usuario dejó de usar el sistema si no cierra sesión de forma
adecuada, osea dando click en mi botón de cerrar sesión).

De antemano gracias!
 

Leer las respuestas

#1 Diego Jancic
12/03/2007 - 17:51 | Informe spam
On Mar 12, 1:37 pm, Oswaldo wrote:
¡Que tal foro?

Tengo un sitio web que requiere autentificación para entrar, para lo cual se
crean cuentas de usuarios con cierto perfil y permisos. Se guardan los
usuarios y su psw encriptado en una tabla (SQL Server). La autentificación es
validando al usuario en dicha tabla. La cuestión es que como lograr que para
cada una de las cuentas del sistema solo pueda haber una sesión abierta, esto
es que no puedan estar 2 personas trabajando con el mismo usuario.

Que me sugieren para resolver dicho problema?

(había pensado en actualizar en una tabla un campo boleano que indica que ya
está firmado un usuario, pero no habría forma de saber en que momento
exactamente el usuario dejó de usar el sistema si no cierra sesión de forma
adecuada, osea dando click en mi botón de cerrar sesión).

De antemano gracias!



Hola,
Debido a que HTTP es un protocolo desconectado, no hay soluciones
realmente buenas (a menos que uses Keep-Alive, pero IIS no lo
soporta).
Lo que podrias hacer es guardar en la DB un campo con la fecha en la
que el usuario accedio por ultima vez a la pagina y guardar el ASP.NET
Session ID... entonces cuando otro usuario intente entrar desde otra
maquina verificas ambos campos, y si la fecha es muy vieja (mayor a 20
mins ?) la obvias...
Creo que no hay soluciones mucho mas prolijas que esa...

Espero que te sirva,
Diego

Preguntas similares