none
clientes concurrentes RRS feed

  • Pregunta

  • tengo una aplicacion de windows form que se conecta a un servicio wcf, lo que quiero hacer, no se si se pueda es cotrolar la cantidad de conexiones, me explico si tengo un usuario A y este entra a la aplicacion desde su equipo A, este usuario no puede entrar a un equipo B si tiene abierta la aplicacion en el EQUIPO A, espero me puedan dar una idea de como solventar este problema, gracias.
    viernes, 13 de septiembre de 2019 14:36

Todas las respuestas

  • Bueno, el problema de esto es cómo determinar si el usuario "tiene abierta la aplicación". El hecho de que se acceda a un servicio WCF no es suficiente para esto, porque el servicio no sabe si la aplicación está abierta. Cada vez que el programa llama al servicio, se abre una conexión durante unas milésimas de segundo, se realiza la llamada, y se cierra la conexión. Una vez cerrada, el servicio no sabe si la aplicación permanece abierta o no.

    Podrías añadir al servicio un par de nuevos métodos que sean "entrada a la aplicación" y "salida de la aplicación", y que la aplicación los llame al abrirla y cerrarla, respectivamente. El servicio podría tomar nota de esas llamadas en algún almacenamiento persistente (por ejemplo, en una base de datos), y de esa manera puede responder a las consultas que se le hagan desde otro puesto acerca de si la aplicación está abierta.

    Sin embargo esto tiene un problema: ¿qué pasa si la aplicación se cierra inesperadamente, o se "cae" la red antes de que se pueda llamar al método que registra la salida? En ese caso, el usuario se quedaría "bloqueado" y ya no podría abrír de nuevo la aplicación. Hay que prever algún mecanismo de recuperación para resolver estas situaciones, como por ejemplo un tiempo máximo de inactividad tras el cual el servidor "resetea" el dato de que ese usuario ha abierto la aplicación.

    viernes, 13 de septiembre de 2019 16:03
  • hola

    porque necesitarias este tipo de control ? la verdad es que llevar un registro de ingreso y egresos centralizados agrega una complejidad importante ya que puede que la app cliente se cierre por alguna causa dejando bloqueado, por lo tanto vas a tener que crear un admin que pueda desbloquar estos casos

    Esta claro que si quieres validar esto al iniciar el cliente se autentica y registras en una tabla central que esta online, cuando cierra la app deberias enviar un mensaje que elimine este registro

    Yo creo que esto no lo vale solo por controlar una doble autenticacion, salvo sea algo relacionado con licencias, pero creo que eso deberias analizarse de otra forma, quizas generando keys para la instalacion de la pc

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de septiembre de 2019 20:55