none
Sessões de login RRS feed

  • Pergunta

  • Olá pessoal...

    Minha dúvida é relativamente simples... Mas gostaria de saber se há alguma solução diferente, ou uma forma mais inteligente de fazer isso...

    A idéia é a seguinte, tenho um sistema com um formulário de login, que solicita o usuário e senha para acesso ao sistema... Até aí blz... Normal... O caso é que, em background, ao abrir a aplicação, eu já pego dados como, nome do computador que o sistema está sendo executado, IP, enfim... os dados do micro do cara... E em cada operação realizada no sistema, eu precisaria registrar essas informações, bem como saber quando o cara começou a usar o sistema, quando ele fechou o sistema e por aí vai...

    Na Web, esse é o conceito da Sessão, por exemplo no PHP vc vai lah... dá um session_start() e o próprio PHP gera uma sessão que vc pode pegar o ID dela e blz... Armazenar esse ID em uma tabela e depois usar só esse ID nos campos que precisar saber Quem, Quando e Onde realizou determinada operação na aplicação...

    Já com WPF/C#... Não encontrei uma forma interessante de gerar esse ID... aí vc pode pensar, "Ah, usa um auto-incremento num tabela SESSAO, e blz"... Mas trabalhando com bancos de dados replicados, auto-incrementos não são um mar de rosas... Então gostaria de saber se alguém tem alguma idéia de como fazer isso...

    Estive pensando em gerar uma chave, concatenando Ano+Mês+Dia+Hora+Minutos+Segundos+Usuário ou outro dado... E gerar uma string com isso... Só que... Esses "varchar" no banco... daki uns anos começa pesar absurdo... Ou isso é preocupação demais da minha parte?!

    Grato!

    sexta-feira, 15 de outubro de 2010 14:09

Respostas

  • Sim, ela é um numero de 128 bits e não repete, pode tentar. Você pode gerar ela com

    var novaGuid = Guid.NewGuid();

    Bruno


    MVP Client Development - http://msmvps.com/blogs/bsonnino
    • Marcado como Resposta Jefferson Balivo sexta-feira, 15 de outubro de 2010 18:04
    sexta-feira, 15 de outubro de 2010 16:23

Todas as Respostas

  • Gere uma chave Guid numa tabela de entrada da sessão - com certeza ela será única e não tem problema de manutenção.

    []s

    Bruno


    MVP Client Development - http://msmvps.com/blogs/bsonnino
    sexta-feira, 15 de outubro de 2010 16:00
  • Hum... Interessante... Mas a chave "GUID" é única independente do dia, ano, qto tempo o sistema tah instalado... e tals!?
    sexta-feira, 15 de outubro de 2010 16:17
  • Sim, ela é um numero de 128 bits e não repete, pode tentar. Você pode gerar ela com

    var novaGuid = Guid.NewGuid();

    Bruno


    MVP Client Development - http://msmvps.com/blogs/bsonnino
    • Marcado como Resposta Jefferson Balivo sexta-feira, 15 de outubro de 2010 18:04
    sexta-feira, 15 de outubro de 2010 16:23
  • Hum... Legal... A cada chamada em Guid.NewGuid(); um novo número é gerado?
    sexta-feira, 15 de outubro de 2010 16:40
  • Sim, é isso mesmo e você tem a certeza que não se repete nunca.

    []s

    Bruno


    MVP Client Development - http://msmvps.com/blogs/bsonnino
    sexta-feira, 15 de outubro de 2010 16:48
  • Cara, muito bom, obrigado!

    Agora, gero a cada login... e boa... Sensacional... Vlw mesmo Bruno!

    sexta-feira, 15 de outubro de 2010 18:03