none
Gerenciamento de Instância de Aplicação C# Desktop RRS feed

  • Discussão Geral

  • Boa noite gente,

    Tenho a seguinte dúvida, desenvolvi uma Aplicação C# Desktop na qual possui logins de usuários para acesso da mesma, como a aplicação estará rodando em um computador que seria o servidor e as estações de trabalho vão acessar a partir deste servidor, eu preciso criar um controle de login, por exemplo se o usuário 'zezinho' estiver logado ele não pode logar novamente. Criei na tabela login as seguintes colunas extras, Status = True/False, usuário logado ou não logado, ipUser = Ip do computador onde o usuário fez login, timeRefresh = A data e hora do login. Criei uma outra aplicação do tipo Console Aplication que irá fazer o monitoramento dos usuários logados, de tempo em tempo baseado na coluna timeRefresh será feita uma verificação do usuário, a aplicação Console irá gerenciar isso, porém não sei como fazer as duas aplicações conversarem entre si, por exemplo, chegou a hora de verificar se o 'zezinho' ainda está ativo/logado, a Aplicação Console de alguma forma comunicaria com a Aplicação Windows Forms baseado no IP que está na coluna ipUser e se o usuário estiver logado retornaria uma resposta, exemplo, True, caso o usuário estivesse caído retornaria False. Baseado nesta resposta a aplicação Console atualizaria a informação deste usuário no banco, exemplo, se a resposta for True, atualiza a coluna timeRefresh com a data e hora atual, caso a resposta seja False, atualiza o Status para False. Pelo que andei lendo, não sei ao certo, mas parece que está relacionado com Soket. Alguém pode me ajudar, preciso implementar isso.

    quinta-feira, 17 de outubro de 2019 22:05

Todas as Respostas

  • Luiz Henrique Passos,

      Você pode controlar de várias formas. Exemplos:

      - A gravação de um campo em um banco de dados (pode ser até criptografado);
      - Uma variável global de memória Property (com um flag, por exemplo);
      - Uma arquivo texto criptografado gravado em algum diretório do sistema operacional;

      Ambas as suas aplicações (Console e Desktop) podem conversar via Banco de Dados. Agora ambas compartilhar de de um mesmo espaço de memória... acho que não é impossível, mas difícil. Um arquivo texto compartilhado também seria bem viável.


      Veja também:

    ==================================================
    Desenvolvimento - C#
    Controle de Usuários – Windows Forms C# (Parte 1)

    http://www.linhadecodigo.com.br/artigo/2904/controle-de-usuarios-windows-forms-csharp-parte-1.aspx
    ==================================================
    Login/Controle de Usuário Windows Forms Application

    https://social.msdn.microsoft.com/Forums/pt-BR/f2d0df80-3352-43bf-b991-9b5ba52f8162/logincontrole-de-usurio-windows-forms-application
    ==================================================
    Como transferir arquivos entre aplicações Cliente/Servidor com DataSnap

    https://www.devmedia.com.br/como-transferir-arquivos-entre-aplicacoes-cliente-servidor-com-datasnap/27093
    ==================================================
    C# – Transferindo dados via HTTP

    https://imasters.com.br/c-sharp/c-transferindo-dados-via-http
    ==================================================

    []'s,
    Fabio I.
    sexta-feira, 18 de outubro de 2019 11:21