none
Como controlar quantidade de Acesso ao Sistema - ASP.NET, C# RRS feed

  • Pergunta

  • Pessoal,

    Minha empresa possui um sistema windows forms, onde quando ele é vendido para o cliente o mesmo possui uma quantidade de acesso simultâneo, ou seja, se 3 computadores irão utilizar o sistema, é vendido 3 licenças, e o sistema bloqueia se 4 computadores tentarem utilizar, nao deixa realizar o login, dizendo que excedeu o numero de acesso.

    Agora estamos migrando o sistema todo para asp.net, utilizando o c#. Como seria o melhor método para se tratar essas quantidades de acessos ? Queremos continuar com a mesma idéia.

    Alguma sugestao? Obrigado!

    terça-feira, 23 de outubro de 2012 20:10

Respostas

Todas as Respostas

  • Talvez criar 3 logins e não deixar um entrar caso outro esteja logado..

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 23 de outubro de 2012 21:12
  • Murilo, obrigado pela resposta. O sistema permite a criação de vários logins, é uma funcão dele, o negócio são os acessos simultâneos de máquinas diferentes..

    Alguma outra solução pessoal ? 

    quarta-feira, 24 de outubro de 2012 11:32
  • Que tal contar quantas sessions estão ativas?

    Cada session representa um usuário no sistema. Veja como contar isso nesse link: http://stackoverflow.com/questions/6218401/how-to-count-sessions-in-asp-net-server-application


    Sou só uma little padawan que tem sorte de andar com jedis, mas farei o possível por quem precisar :)

    Se precisar: @MayogaX

    • Marcado como Resposta Gustavo Brum quinta-feira, 25 de outubro de 2012 13:57
    quarta-feira, 24 de outubro de 2012 11:52
  • Uma maneira de fazer seria usar os Membership para controlar as permissões no seu site e então utilizar:

    Membership.GetNumberOfUsersOnline();
    Ou uma outra forma também, é utilizar o objeto application, no global.asax utilizar um incremento e na sua tela de login fazer a verificação.
    • Sugerido como Resposta Lucas Vandor quarta-feira, 24 de outubro de 2012 12:12
    • Não Sugerido como Resposta Gustavo Brum quarta-feira, 24 de outubro de 2012 12:50
    quarta-feira, 24 de outubro de 2012 11:56
  • Veja se esse artigo também consegue te ajudar...http://www.codeproject.com/Articles/29792/Online-active-users-counter-in-ASP-NET

    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    quarta-feira, 24 de outubro de 2012 12:13
  • Priscila,

    Gostei da solução, porém se o usuário sair da aplicação sem dar o Logout, ou seja, fechar direto o navegador, a Sessão dele fica lá até acabar os minutos definidos para a Session..

    quarta-feira, 24 de outubro de 2012 12:14
  • Guilherme, utilizando essa solução do membership se eu logar com o mesmo usuário em várias máquinas ele irá me retornar 1 usuário online ? Já a outra solução é parecida com a que Priscila citou, o problema para ela é o decremento.

    Obrigado pessoal, podem dar sugestão a vontade, preciso de uma solução para isso.

    Abraço.

    quarta-feira, 24 de outubro de 2012 12:21
  • Com o membership ele vai pegar os usuários logados independente do login. Mas você também pode usar a solução da Priscila, se o usuário fechar sem dar logout, não tenho certeza, mas acho que de qualquer forma ele passará pelo Session_End do global.asax, se não passar você pode fazer um decremento em um evento javascript, no onbeforeunload.

    quarta-feira, 24 de outubro de 2012 12:32
  • se não me engano ao fechar o navegador passa pelo session_end. Mas gostei da idéia do membership

    Sou só uma little padawan que tem sorte de andar com jedis, mas farei o possível por quem precisar :)

    Se precisar: @MayogaX

    quarta-feira, 24 de outubro de 2012 13:00
  • Guilherme,

    Utilizando o onbeforeunload, toda vez que eu mudo de pagina na minha aplicaçao ele é executado, teria algum evento para que dispare apenas se o usuário fechar o navegador ou a aba do mesmo ?

    quarta-feira, 24 de outubro de 2012 13:02
  • Dúvido muito que isso aconteça priscila.

    Imagina eu ter 20 abas abertas e fechar o navegador; ele teria que enviar 20 cookies pra 20 servidores diferentes.


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    quarta-feira, 24 de outubro de 2012 13:03
  • Murilo, alguma outra sugestao ?
    quarta-feira, 24 de outubro de 2012 13:11
  • Guilherme,

    Fiz o teste com o Membership, mas ele nao se comporta legal, eu realizo o logout e ele ainda continua contando como o usuário estivesse logado, coisa de doido..

    Putz, tá foda arrumar uma solução. Help-me!  aOPKRPAK² x)

    quarta-feira, 24 de outubro de 2012 13:22
  • O objeto Membership trabalha em conjunto com as sessions, como você trata quando o usuário faz o logout? você limpa alguma session?

    E quanto a questão de algum evento no botão X do browser realmente não tem, a minha sugestão é que se o valor do retorno do confirm for true você realiza o decremento.

    quarta-feira, 24 de outubro de 2012 13:30
  • Priscila,

    Obrigado, acabei utilizando a sua sugestao. Sobre o navegador, paciência, só passará no session_end quando terminar o tempo de duração.

    quinta-feira, 25 de outubro de 2012 13:59
  • Priscila,

    Obrigado, acabei utilizando a sua sugestao. Sobre o navegador, paciência, só passará no session_end quando terminar o tempo de duração.

    :) que bom que gostou da minha sugestão. Sucesso, amigo :*

    Sou só uma little padawan que tem sorte de andar com jedis, mas farei o possível por quem precisar :)

    Se precisar: @MayogaX

    quinta-feira, 25 de outubro de 2012 14:06