Malandragem do cliente

Tenho uma dúvida em relação a solução apresentada por alguns, de se gravar que a máquina está logada no sistema em um arquivo ou tabela do banco de dados.

Se por acaso a energia cair, a máquina travar ou algo assim, antes de ser possível atualizar a informação na base de dados que o sistema naquela máquina foi fechado. Certamente quando ele tentar entrar novamente o sistema não vai deixar ele logar.

Alguém aqui já passou por isso?

[quote=Jhonny Oliveira]Tenho uma dúvida em relação a solução apresentada por alguns, de se gravar que a máquina está logada no sistema em um arquivo ou tabela do banco de dados.

Se por acaso a energia cair, a máquina travar ou algo assim, antes de ser possível atualizar a informação na base de dados que o sistema naquela máquina foi fechado. Certamente quando ele tentar entrar novamente o sistema não vai deixar ele logar.

Alguém aqui já passou por isso?[/quote]Basta colocar um tempo de última atividade.

Nome: MAQUINA_A
LAST_LOGIN: 10:34

Se passar de 5min ou sei lah, você mata o primeiro e libera o próximo. [=

Considerando que o acesso é remoto das máquinas, você pode estabelecer conexão por perfil do usuário.

Uma tabela chamada algo como “monitoramento_login” irá monitorá os logins que estão em uso, no momento.

A ideia de usar login flutuante, que wbdsjunior sugeriu é bem interessante, e a considero mais justa tanto para o cliente quanto para o fornecedor.

Mas voltando… nessa tabela, você registraria o login e a hora de acesso, inicialmente. E as consultas à ela seriam feitas em três situações:

1 - Quando um usuário tenta-se logar no sistema, verificava se já tinha registro com o mesmo login, caso tivesse, barrava o acesso;
2 - Quando o usuário deslogasse do sistema, apagava o registro pelo login do usuário que deslogou para liberar futuro acesso;
3 - A cada X tempo, pois evitaria “locks” de usuários. A cada 5 min, 2, 3, sei lá, uma thread ou até mesmo uma rotina de scheduler iria à tabela verifica qual foi o último acesso do usuário. Essa rotina serveria com um “tick” marcando a hora de atualização a cada X minutos, se houvesse alguma falha no sistema, a hora não seria marcada e quando o usuário tentasse logar novamente o sistema iria saber se foi desligado por falha ou não. A outra opção para esse caso seria criar um bootstrap, para sempre apagar os registros dessa tabela quando o servidor fosse inicializado.

[quote=Jhonny Oliveira]Tenho uma dúvida em relação a solução apresentada por alguns, de se gravar que a máquina está logada no sistema em um arquivo ou tabela do banco de dados.

Se por acaso a energia cair, a máquina travar ou algo assim, antes de ser possível atualizar a informação na base de dados que o sistema naquela máquina foi fechado. Certamente quando ele tentar entrar novamente o sistema não vai deixar ele logar.

Alguém aqui já passou por isso?[/quote]
você pode criar um utilitário para “matar” a sessão do usuário.

Cara… tem cliente que é sacana hein!
Fazer issso na cara dura. HUahuahau
Pior que ele deve ter pensado assim:
“Ele não vai reclamar porque vai ficar com medo de perder o cliente”
O tempo me ensinou que tem algumas pessoas que não vale apena termos como clientes.

vc poderia pelo menos cobrar por 4 manutenções.
Admiro sua paciencia.

[quote=Luiz Augusto Prado]Cara… tem cliente que é sacana hein!
Fazer issso na cara dura. HUahuahau
Pior que ele deve ter pensado assim:
“Ele não vai reclamar porque vai ficar com medo de perder o cliente”
O tempo me ensinou que tem algumas pessoas que não vale apena termos como clientes.

vc poderia pelo menos cobrar por 4 manutenções.
Admiro sua paciencia.
[/quote]
He he he… e tem mesmo…

Agradeço as dezenas de idéias… vou formular uma solução seguindo as várias idéias sujeridas aqui… login flutuante ou verificando numero do mac ou numero do processador…vou ver por aqui segundo o contrato que o cara assinou…(Sim…ele assinou um contrato em que consta as licenças)… mas tenho certeza de que quando ele tentar acessar as máquinas “sem licença” … vai telefonar reclamando que o sistema só está funcionando em duas máquinas…kkkkkk…

Vou desenvolver Urgente uma solução Web para meu sistema… para os próximos clientes… e modificar os termos de licença

Mais adiante eu posto a solução que fiz , qual foi a reação do cliente … e o desfecho desta linda História he he he…

Estou curioso pra ver o que o cliente vai falar hahaha

Eu vi que tem muitas ideias bacanas aqui para contornar esse problema. Mas me ocorreu uma duvida:
Alguem sabe se é possivel inicializar uma maquina virtual (Como um virutalbox), sem que a pessoa que for instalar o software saiba que é uma maquina virtual ?
Se o programa for instalado em uma maquina virtual, acho que é possivel mudar algumas variaveis tais como o numero do processador, fazer cópias do arquivo e colocar as cópias em outras maquinas.

Se limitar o numero de conexões com o servidor de modo a ter o mesmo numero de licenças acho que seria uma boa.