Controle de sessão para limitar o acesso em N usuários por empresa...[RESOLVIDO]
Autor Tópico: Controle de sessão para limitar o acesso em N usuários por empresa...[RESOLVIDO] (Lida 5478 vezes)
« Online: Novembro 24, 2014, 04:53:52 pm »
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.
« Última modificação: Dezembro 11, 2014, 10:07:49 am por Beto »
Re:Controle de sessão para limitar o acesso em N usuários por empresa registrada
« Responder #1 Online: Novembro 25, 2014, 06:34:30 am »
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
« Última modificação: Novembro 25, 2014, 06:39:06 am por Haroldo »
« Responder #2 Online: Novembro 25, 2014, 12:24:42 pm »
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.
« Última modificação: Novembro 25, 2014, 12:27:43 pm por Beto »
« Responder #3 Online: Novembro 25, 2014, 12:37:27 pm »
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.
« Responder #4 Online: Novembro 25, 2014, 12:50:54 pm »
Citação de: Haroldo em Novembro 25, 2014, 12:37:27 pm
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
« Última modificação: Novembro 25, 2014, 12:53:27 pm por Jailton »
« Responder #5 Online: Novembro 25, 2014, 02:48:25 pm »
Pronto Haroldo,
Certamente foi isso, pesquisei dentro de uma das sessões do fórum que certamente não havia tal assunto.
« Responder #6 Online: Dezembro 11, 2014, 10:06:55 am »
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.
Re:Controle de sessão para limitar o acesso em N usuários por empresa...[RESOLVIDO]
« Responder #7 Online: Dezembro 11, 2014, 10:27:31 am »
Pergunta. Um mesmo usuário consegue se logar em duas maquinas diferentes?
« Responder #8 Online: Dezembro 11, 2014, 12:06:08 pm »
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.
« Responder #9 Online: Dezembro 11, 2014, 12:16:55 pm »
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.
« Responder #10 Online: Dezembro 11, 2014, 01:02:42 pm »
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.
« Responder #11 Online: Dezembro 11, 2014, 01:19:34 pm »
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.