Controle de sessão para limitar o acesso em N usuários por empresa...[RESOLVIDO]

Boa tarde a todos,

Meu sistema segue o padrão de muitos dos colegas e sei que isso não é novidade, mas desde ontem pela manhã estou pesquisando e não consigo sequer imaginar como fazer esse controle de forma simples.

A segurança do sistema já está a 80%, login, registro, grupos, usuários, e log, tudo customizado para multi-empresa, e usando o e-mail como login.

Estou agora trabalhando nos 20% restantes, o controle de sessão, para bloquear acessos múltiplos do mesmo usuário e o mais importante a restrição do número de acesos de acordo com os limites contratuais com cada empresa registrada.

Se alguém puder me dar uma luz a respeito agradeço, pois mesmo tendo feito alguns cursos online de Java, JS, HTML5 e PHP, não tenho experiência em desenvolvimento Web, por isso adquiri o ScriptCase 8, e este é meu primeiro projeto.

Pesquise no forum, já falei sobre o assunto aqui.

http://www.scriptcase.com.br/forum/index.php/topic,4439.msg17569.html#msg17569

http://www.scriptcase.com.br/forum/index.php/topic,7025.msg33202.html#msg33202

Bom dia Haroldo,

Antes de mais nada agradeço pela sua atenção, percebi que você é um programador muito experiente e extremamente generoso, pois compartilha com muita frequência seu conhecimento e noto que faz isso com boa vontade, espero que em breve eu possa também ajudar outros como você está me ajudando.

Eu pesquisei o dia todo antes de postar a pergunta aqui no fórum, no entanto devo ter sido infeliz em escolher as expressões erradas para as pesquisas e talvez por isso não consegui encontrar os links que você me enviou, procurarei ser mais atento e diligente antes de pedir ajuda novamente aqui no fórum.

Vou avaliar os links com atenção, pois sei que lá devo encontrar a solução para o meu problema, e assim que resolver posto o resultado aqui para ajudar a outros o acesso a essa informação tão preciosa com mais uma alternativa de tópico.

Cordialmente

Beto.

Beto,

Para pesquisar aqui tem que primeiro clicar em Início para abrir todas as sessões do fórum, se estiver numa sessão específica o Pesquisa só irar procurar no tópico aberto por exemplo.

Faça um teste: Clique em Inicio depois pesquise: usuarios online.

Essa dificuldade muitos tem aqui por não saber disso.

Espero que possa ajudar mesmo, pois estou quase me aposentando… rs.

Que isso Haroldo vai mais uns 40 anos pra você se aposentar… Olha o Clint Eastwood / Ian McKellen ainda na ativa e vários outros… ehehe

Pronto Haroldo,

Certamente foi isso, pesquisei dentro de uma das sessões do fórum que certamente não havia tal assunto.

Agradeço a dica!

Abração!

Bem a solução que adotei foi a seguinte:

Aproveitei a sc_logged.php que é gerada pelo SC em projetos padrão de segurança, e mesmo tendo criado do zero a estrutura de segurança do meu sistema, isso porque ele tem requisitos que o sistema padrão de segurança do SC não atende, usei o conceito para bloquear múltiplos logins de um mesmo usuário e limitei a criação de usuários a um número máximo definido em uma tabela de controle de registro armazenada em outro banco, nesta mesma tabela controlo a data que expira a licença e qual é o tipo de licença, que definirá os recursos que será liberados para o usuário.

No banco dos clientes tenho uma tabela “registro” com todos os dados do cliente e outra chamada “ativação” com 5 campos VARCHAR(255), ao incluir um novo registro o sistema replica a tabela “registro” para o banco de controle onde há um espelho da mesma, e popula a tabela “ativação” com informações encriptadas correspondentes a uma licença programada para expirar em 90 dias e replica esta tabela para o banco controle, além de popular um terceira tabela chamada “controle” que está também no banco controle com as mesmas informações que originaram a tabela ativação.

No login e durante a operação do sistema, as informações da tabela ativação são desencriptadas e utilizadas em validações, e quando necessário altero os limites da licença na tabela “controle” no banco controle que replica as alterações já encriptadas para a tabela “ativação” do banco dos clientes.

Caso algum dos companheiros tenha sugestões para melhorar ou simplificar este mecanismo, agradeço.

Espero que este post ajude a outros colegas que no futuro possam ter as mesma dúvidas que eu tive.

Pergunta. Um mesmo usuário consegue se logar em duas maquinas diferentes?

Pelo que entendi ele não ta usando sessão. Acho que poderá um usuário esta conectado em 2 máquinas em tempo de execução.

Lendo mais atentamente ele diz que uso o mesmo método de bloqueio múltiplo da segurança do SC e limitando o cadastro de usuários isso deve resolver sim.

Citando parte do texto:

“usei o conceito para bloquear múltiplos logins de um mesmo usuário e limitei a criação de usuários a um número máximo definido em uma tabela de controle de registro armazenada em outro banco”

Esse método, verifica se há alguma instância ativa desse usuário, caso haja ele da a opção de derruba-la para fazer um novo login ou ou de abortar a tentativa de logar, caso a derrube no momento em que o usuário logado com a outra instância tentar fazer qualquer operação de banco ou instanciar uma aplicação o sistema derruba a conexão e fecha o programa.

Por outro lado controlando o número de usuários cadastrados você fecha o circuito.

Esta opção de verificar o usuário logado e fechar a sessão ou não do mesmo tem no módulo de segurança do Scriptcase.

Citando o texto anterior:

“Aproveitei a sc_logged.php que é gerada pelo SC em projetos padrão de segurança”

Fala galera !
Muito proveitoso essas informações.
De usuários logados e qtd de licenças.
Poderiam complementar…
Na criação do sistema de segurança, não é criado a tabela Sec_Logged
Como é ordenada as chamadas das funções nesses casos específicos de :

  • Inserção da informação de usuário logado,
  • Verificação de usuário logado.
  • Confirmação de exclusão de sessão.
    enfim… precisarei de umas dicas para terminar este modulo…