none
Validação de Usuário Logado RRS feed

  • Pergunta

  • Boa tarde, 

    Estou desenvolvendo uma aplicação C# em Desktop. Nessa aplicação preciso travar o usuário logado no sistema para o mesmo não se logar mais de 1x com o mesmo usuário. Algum de vocês tem uma ideia de como posso fazer para implementar essa funcionalidade ? 

    Eu pensei em gerar um arquivo com o nome do usuário sempre que ele logar no sistema e deixar esse arquivo com lock até o cara logar (Ou ter algum problema na maquina e a mesma ser reiniciada). Porem os Client's da minha aplicação podem ser instalados em varias maquinas diferentes, com isso ele pode rodar um client na maquina A e quando ele for se logar num outro client da maquina B o arquivo não vai existir no diretório B. 

    Pensei também em fazer dando Lock no registro do banco, porem não sei se seria uma opção arriscada. Essa do banco de dados é víavel pois eu posso ter vários client's instalados em maquinas diferentes, porem esses client's sempre devem apontar para o mesmo servidor de banco de dados. 

    Algum de vocês teria uma ideia diferente dessas duas ? Ou alguma sugestão em cima dessas ideias, dizendo se é um bom ou mal caminho. Qualquer ideia é bem vinda para eu verificar a viabilidade de implementar. 

    Obrigado a todos
    sexta-feira, 5 de setembro de 2014 18:10

Todas as Respostas

  • Olá Roooobb,

    É meio estranho as duas maneiras em que você pensou para resolver seu problema,

    no seu caso o mais simples seria ter uma tabela no banco de dados,

    nela você gravaria os 'ID's' dos usuários assim que eles fizerem login no sistema,

    quando fizer logoff no sistema você remove o ID da tabela e pronto.

    Assim bastaria uma varredura na tabela de 'UsuariosLogados' e comparar os ID's.

    Se o ID do usuário que está tentando fazer o login estiver na sua tabela, basta negar o acesso ao sistema.

    Acho essa a maneira mais simples e eficiente para seu problema ...

    Espero ter Ajudado .... Abraço

    Gérison

    quarta-feira, 10 de setembro de 2014 01:08
  • Ola amigo,

    Essa maneira não se torna viável pois caso o usuário desligue ou reinicie o computador diretamente a tabela irá ficar populada com o ID, com isso ao tentar entrar com o usuário novamente ele vai acusar que o mesmo está logado quando na verdade não vai estar.

    quinta-feira, 11 de setembro de 2014 18:07
  • Voce pode fazer uma rotina que de tempo em tempo vai no banco de dados e atualiza o usuario logado entao a cada poucos minutos a aplicacao cliente indica que o usuario esta logado. Isto irá lidar com as situações em que o cliente para de funcionar repentinamente.

    Outras maneira é sua aplicacao sempre deslogar todas as outras sessões sempre que um usuario logar, assim vc garante que semper vai ter so um.


    Att,
    Breno Queiroz
    Blog Breno Queiroz


    • Editado Breno Queiroz quinta-feira, 11 de setembro de 2014 18:28
    quinta-feira, 11 de setembro de 2014 18:19
  • Certo Roooobb,

    Deixe eu ver se entendi...

    Já pensou em soluções simples como impedir o usuário de abrir seu sistema mais de 1x ?

    Ou seja, se ele estiver com o sistema aberto ele só conseguirá abrir novamente se fechar o atual.... isso já resolveria seu problema... ou não?

    Abraço ...

    quinta-feira, 11 de setembro de 2014 23:25