Ivo, pelo que entendi você sugeriu algo como:
Crio uma tabela para registrar quem está logado e a app atualisa o time stamp a cada 5 minutos ( por exemplo ).

No caso se um novo login e o registro existir na tabela mas o tempo for maior que 5 minutos, isso indica que a conexão terminou de forma anormal. então loga normalmente. Caso sontrário o usuário está logado. Mesmo que o usuário tenha se desconectado de forma anormal, teria que aguardar completar o tempo (5 minutos) para logaar novamente.

É isso ?

Você usa este tidpo de controle ?

Grato.

ivo nascimento escreveu:

Eu resolveria(sugeriria) esse seu problema, se voce desejasse resolver do lado do banco, com uma tabela de logados, em que quando uma pessoa loga cria um registro com o timestamp e ip da maquina... em cada operacao ou em um gatilho na propria aplicação rodando em determinado período, voce atualiza esse timestamp de acesso. assim que alguem tenta logar voce pergunta para essa tabela se aquele login ja esta em uso e se o periodo do lastaccess esta valido, se estiver tudo certo, nega o login, senao, bloqueia o login com aviso de usuario ja logado.

o timestamp e sua atualizacao periodica serve para o caso de travamentos do desktop em que o usuario nao teve como sair da aplicacao e a chave ficaria esquecida la, invalidando o usuario ate uma limpeza manual.

no exit da aplicacao dispare um evento que delete registro na tabela de logados... acho essa uma solucao elegante... mas com certeza vão haver muitas outras solucoes.
2009/1/12 marco <[email protected] <mailto:[email protected]>>

    Pessal estou com o seguinte dilema:
    Tenho alguns cliente que me pedem para que cada usuário se conecte
    ao sistema em uma máquina por vez. Para resolver o problema, criei
    os usuários da minha app como usuários do PG pois desta forma
    quando um usuário tentar efetuar o login na app, ela pergunta ao
    PG se o usuário já está logado, se não estiver logado a entrada no
    sistema continua (a conexão fica aberta até a app ser finalizada)
    caso contrário e entrada é barrada e ele é avisado que seu login
    está aberto em outra máquina.
    mas recentemente venho estudando o C# e tenho notado que ninguem
    utiliza uma conexão permanente ao banco de dados. todos tem seus
    ótimos argumentos.

    Gostaria de saber a opinião de vocês:
    Pensando no controle que preciso, é arriscado manter uma conexão
    permanente com o banco ?

    Se este procedimento for ruim e o melhor for o que o mundo c# diz:
    Conecte, pegue o que quer e desconecte. Como fariamos para manter
    o controle em que o usuário só possa ficar conectado em uma máquina.

    Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer
    de vocês

    Obrigado.
-- *Marco Antonio J. Victor*
    Fone/Fax: *11 2977-5406*
    www.tactor.com.br <http://www.tactor.com.br>


    _______________________________________________
    pgbr-geral mailing list
    [email protected]
    <mailto:[email protected]>
    https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




--
Ivo Nascimento - Iann
-------------------------------------
|   twitter: ivonascimento .     |
|   http://ianntech.com.br.      |
|   ZCE ID 227463685            |
-------------------------------------
------------------------------------------------------------------------

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
------------------------------------------------------------------------


Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - http://www.avgbrasil.com.br Versão: 8.0.197 / Banco de dados de vírus: 270.10.6/1888 - Data de Lançamento: 12/1/2009 07:04


--
        *Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a