Login de usuários

07/02/2014

0

Estou precisando de uma opinião.

Tenho um sistema e no banco de dado tem uma tabela que mantém o status do usuário, por padrão o status é sempre offline.

Quando o usuário loga no sistema ele verifica esse campo, se for "offline", o login acontece e ele grava "online" no banco e todas as vezes que o usuário faz logoff ele grava "offline" novamente e por aí vai. Tudo isso para que o usuário não logue várias vezes usando PCs diferentes, ou seja, se estiver "online" no banco o sistema não vai logar.

Agora vem o detalhe; Se por acaso o usuário reiniciar o PC, fazer logoff no Windows, Desligar o PC, queda de energia, resumindo se a cessão do windows fechar e o sistema estiver aberto o valor "online" vai ficar gravado no banco de dados e o usuário não vai mais conseguir logar já que é o sistema que grava "offline" no momento em que é fechado.

O que faço para contornar essa situação?
Ricardo

Ricardo

Responder

Posts

07/02/2014

Luiz

Pode fazer de várias formas:

Gravar um outro campo quando sair da aplicação (no close da aplicação) - Por exemplo, status TRUE;
Quando fazer login, testar esse campo, se o usuário realmente saiu da aplicação, testar o online e offline, quando der queda de energia, este campo vai ser com status FALSE ... então você deixa o usuário acessar mas grava um log, isso para que se ele ficar desligando o computador de propósito, você consiga ter um relatório para informar o gerente (por exemplo), e verificar o que esta acontecendo ... afinal, isso (queda de energia, desligar sem sair, etc) é para acontecer esporadicamente.

Você também pode criar um botão com uma senha para o gerente liberar o acesso, ou seja, nesses casos de ficar travado, alguma pessoa com senha especial, pode liberar esse acesso quando o sistema ficar travado, ai é só gravar um log tbm, pra saber qtas x esta ocorrendo essa liberação ...

E por ai vai ...




Responder

07/02/2014

Leandro Chiodini

Boa Tarde,

Você pode fazer o seguinte,
verificar se ele esta com o "online" ou 'offline'
Caso esteja online, de duas uma ou o cara ta logado, ou o servidor cai e nao mudou para "offline"

Entao voce pode criar uma pergunta do tipo
Este usuário ja esta logado no sistema,
deseja desconectar, e logar neste computador?

se o cara colocar sim
tranquilo altera o status pra offline,
derruba a conexao com o servidor,
e loga o cara novamente.

isso vai ajudar tanto quando tem queda de energia,
como quando o usuario vai acessar por outro computador mais sem querer deixou ele logado em outra maquina
assim ele pode acessar mesmo assim, sem a necessidade de ir ate a outra maquina para efetuar o logoff

é uma ideia.

att,
Chiodini
Responder

07/02/2014

Ricardo

Boa Tarde,

Você pode fazer o seguinte,
verificar se ele esta com o "online" ou 'offline'
Caso esteja online, de duas uma ou o cara ta logado, ou o servidor cai e nao mudou para "offline"

Entao voce pode criar uma pergunta do tipo
Este usuário ja esta logado no sistema,
deseja desconectar, e logar neste computador?

se o cara colocar sim
tranquilo altera o status pra offline,
derruba a conexao com o servidor,
e loga o cara novamente.

isso vai ajudar tanto quando tem queda de energia,
como quando o usuario vai acessar por outro computador mais sem querer deixou ele logado em outra maquina
assim ele pode acessar mesmo assim, sem a necessidade de ir ate a outra maquina para efetuar o logoff

é uma ideia.

att,
Chiodini


Leandro,

Isso seria interessante, mas nessa situação se por acaso o usuário estiver realmente logado em outra máquina a conexão não vai ser derrubada e ele vai conseguir logar em mais de um PC ao mesmo tempo.
Responder

07/02/2014

Leandro Chiodini

Não da pra derrubar ...

vou colocar alguns links que trata do assunto.

http://www.linhadecodigo.com.br/artigo/822/delphi-controle-de-acesso-treeview-para-gerenciamento-de-usuarios.aspx

Da uma olhada tambem em UserControl umas melhores maneiras de fazer esse controle de usuario.

edn.embarcadero.com/article/36235

Video

http://www.youtube.com/watch?v=Wd-HV-jImU8

http://www.youtube.com/watch?v=xLQdP4DtWDA


ATt,
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar