Te contaré como controlo yo este tema de los
usuarios en aplicaciones en red, quizás te pueda servir.
Añado una tabla adicional con los siguientes campos: Puesto, Fecha, Hora,
Usuario
En esta tabla, al configurar el puesto de red para que pueda operar con la
aplicación, el proceso agrega un registro a dicha tabla y deja en el campo
"Puesto" el valor de sys(0) que devuelve como ya sabrás (la máquina
de red cuando se utiliza VFP en un entorno de red.)
Cuando una máquina, arranca la aplicación lo primero que hace es buscar en
dicha tabla su sys(0)
SELE "loquesea"
LOCATE FOR sys(0) $ "loquesea".puesto
*** y si no lo encuentra está claro que no se le permite seguir ....
IF eof() && no se encontró
***(mensaje de: terminal no autorizado y a la P. calle)
QUIT
ENDIF
si lo encuentra, BLOQUEA EL REGISTRO Y pone en los campos fecha, hora, usuario
los respectivos valores
SET REPROCESS TO 1
IF .not. lock() && ya esta bloqueado la aplicación esta arrancada en
este puesto
quit && salida
ENDIF
REPLACE "loquesea".Fecha WITH date(), "loquesea".Hora with
time(),
"loquesea".Usuario with m.user
SET REPROCESS TO "lo que uses habitualmente"
Este bloqueo, lo mantengo hasta que salga de la aplicación como se debe salir y
entonces deja en blanco los campos fecha, hora, usuario a la vez que desbloquea
el registro.
REPLACE "loquesea".Fecha WITH {" "},
"loquesea".Hora with "",
"loquesea".Usuario with ""
unlock
La ventaj que esto tiene, es que al salir de la aplicación "de forma incorrecta,
por error, apagon etc" se desbloquea el registro si bien quedan anotados
los datos del puesto, usuario, fecha y hora; los que borro si sale como es
debido.
Si al entrar en la aplicación, el registro está bloqueado, es señal de que ya
tiene abierta la aplicación y seguramente la tiene minimizada por lo que puedes
procedo a levantarsela y no seguir en esta nueva apertura.
Si al entrar en la aplicación, no esta bloqueado el registro pero resulta que
se encuentra los valores de fecha, hora, usuario; es señal de que la vez
anterior que entró, no salido de forma correcta; en tal caso procedo a lanzarle
un mensaje de SEVERO Y PELIGROSO AVISO ( ...tal usuario, entro en fecha y hora
a la aplicación y no salio como debía, "es la XXXX vez que se apaga de
forma ilegal" operación muy peligrosa, posible perdida de datos ...avise
al servicio tecnico...)
¡ No te puedes hacer idea, de lo bien que queda uno cuando hay problemas y
puedes mirar y decirles que ya se ha salido de la aplicación 23 veces de forma
incorrecta, que ¿que es lo que quieren que hagas?, merece la pena guardar estos
incidentes ya que seguramente, acabarán por mostrarte que puestos tienen
problemas, bien sea de operador o de máquina o quizás de
windows, reinstalar nuevamente el windows en algunas máquinas suele ser el
final de muchos problemas.
Del lat. sectio, -ōnis.
Del lat. tardío sessio, -ōnis 'audiencia, conferencia'.
Muy Bueno Edwin lo que no entiendo es se debe crear un archivo tipo txt para guardar la sesión del usuario activo...
Antonio, te explico el sentido de este control en mi caso, yo comercializo programas desarrollados por mi y lo controlo por puestos, no me interesa tanto la cantidad de veces que se “Loguea” un usuario como los puestos activos. Si la empresa cliente compro licencia para 20 puestos puede entrar en los 20 con el mismo usuario, ahora, sólo puede usar 20 computadores no 21. Para mi ese es el sentido de controlar el número de puesto. También tengo otra modalidad de Licencia que es libre, o sea, sólo controlo el nombre y número de identificación fical de la empresa, no me interesa el número de puestos.
Alfonso
Buenas tarde colegas.
Últimamente reviso poco el foro pero me llamo la atención este hilo y cuando voy al Link sugerido por Edwin me llamó la atención porque resulta que es mio ese Email o comentario. Si desea colega “exl260708” puedo explicarte con detalles como trabaja este tipo de control de licencia puesto que todavía lo uso en varias aplicaciones.
Alfonso
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] Em nome de exl260708 .
Enviada: 2 de dezembro de 2016 20:27
Para: publice...@googlegroups.com
Assunto: Re: [vfp] Re: Controlar Estado de Sección Los Usuarios que han ingresado al Sistema
Gracias Edwin estoy revisando ... y tambien gracias Antonio Meza
Hola,
Mira lo que esta descrito en el Link no va a diferir mucho en el comentario que yo te haga ahora pero me pueden preguntar más directamente después.
Yo resuelvo ese problema de la siguiente forma, en la base de datos mías (SQL server/PostgreSQL) tengo una tabla para los puestos con campo que tiene por nombre cualquier cosa que no indique que se refiere a la licencia como por ejemplo del tipo numérico con un número de varias cifras, que muda contantemente cada vez que entra el puesto, si es par es que el puesto está activo y si es impar es que no lo está por ejemplo, ahora bien con eso no es suficiente pues pudiera pasar lo que describes antes si el programa se bloquea o termina de forma anormal. Para solucionar esto entonces entra la otra parte, cada puesto lo determina un archivo de licencia encriptado que contienen entre otras cosas, la cadena de conexión al banco de datos, el número del puesto y el nombre, dirección y número de identificación fiscal de la empresa y además una bandera o indicador que cada vez que entras al sistema se activa y cuando sales se desactiva.
Si cuando vas a entrar al sistema el banco de datos dice que está activo y la licencia también fue que hubo una terminación anormal o bloqueo de sistema, por el contrario si cuando vas a entrar el banco de datos está activo y la licencia no significa que el puesto esta duplicado en otro lugar pues está abierto el puesto según la tabla mas no en tu local (emite mensaje de puesto en uso o duplicado). Si por ventura quieres forzar la entrada independientemente del estado de las licencia para eso cree un generador de clave maestra que varía por día o por el ID del computador y con ella puedes violar este tipo de control, sólo que es válido por un día nada más.
Espero hayas entendido algo, sino me dices.
Alfonso
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] Em nome de exl260708 .
Enviada: 5 de dezembro de 2016 18:32
Para: publice...@googlegroups.com
Assunto: Re: [vfp] Re: Controlar Estado de Sección Los Usuarios que han ingresado al Sistema
Claro Alfonso Arias me gustaría mucho saber como lo trabajas tu y de ahi aprender un poco mas como trabaja el contol ...