Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos,Estou desenvolvendo um sistema onde o mesmo usuário não pode se logar em duas máquinas ao mesmo tempo.Programei pra setar um campo do cadastro do usuário pra indicar que ele está logado, mas preciso voltar o campo quando o usuário sai.Porem preciso que isso aconteça tb qdo ele fechar o navegador. A unica forma que encontrei de fzr isso é chamar outra janela pelo evento onunload da pagina. Mas se o usuario estiver usando anti-popup, a janela nao e aberta e o sistema naio atualiza o bd.como resolver?agradeco qqer ajuda.[]'s
Vagner,Boa noite,O problema eh q se o usuário fechar a janela do navegador, a Session_OnEnd não é executada.Ou seja, se ele fechar a janela, o sistema continuará constando como logado.Preciso de outra forma de fazer.Alguma idéia?Obrigado.[]'s
Coloca a session com tempo limite para expirar!Ou chama uma página ASP via AJAX no evento ONUNLOAD, para executar a função que atualiza o registro na base!
Vamos lá, a idéia é utilizar multiplas formas de "deslogar".
Utilize o Session_OnEnd do Global.asa para deslogar ao termino da sessão (que sempre ocorre, mesmo quando o usuário sai do site), isso evita que o usuário permaneça logado caso o PC reinicie ou caso o browser não seja fechado corretamente, além disso utilize AJAX para deslogar em caso de saida de sua página pelo browser, isso evita anti-PopUps.
Isso ae Salgado, valeu por complementar a idéia, acho que eu não deixei bem claro as vantagens desses métodos!
Vagner e Salgado,Obrigado pelas respostas.O tempo para a Session não acredito que seja uma boa opção, pois pode acontecer de o usuário fechar o navegador e já querer logar novamente e não iria conseguir.Acho que talvez a idéia do AJAX seja a melhor opção, mas meus conhecimentos no assunto são bem básicos.Como seria feita essa chamada?Agradeço se puderem dar mais essa ajuda.[]'s
Não despreze o Session_OnEnd pois vale para os casos que citei, se não for por ele seu usuário vai depender de alteração de Status externa (edição no bd "na marra").
Com relação ao AJAX, dê uma olhada no Laboratório de Scrpts, existe uma base lá para iniciar seus estudos. Não é nada mostruoso e conforme forem surgindo as duvidas vai postando.
Salgado,Obrigado mais uma vez.Vou dar uma verificada no Laboratório de Scripts amanhã cedo e se tiver alguma dúvida eu volto aqui pra pedir uma força.[]'s
Salgado,Bom dia,Fiz uma busca por AJAX no Laboratório de Scripts e foram encontrados somente 4 posts e o único dos 4 que aparentemente teria o que preciso teve o script removido.Tem algum termo específico que eu possa procurar?Obrigado mais uma vez.[]'s
Alexandre,
Dê uma olhada nesse tópico, no trecho "formulario.asp" você encontra a parte "Ajax" do sistema. Com ela é só ir adaptando, em casos de dúvida poderemos ir montando algo e depois disponibilizamos para todos, OK?
Salgado,Boa tarde,Muito obrigado novamente pela ajuda.Vou testar a tarde e mando um novo post caso tenha alguma dificuldade.Vamos montar isso e disponibilizar sim, pois é uma ferramenta muito útil.[]'s
Utiliza os recursos do objeto Session para executar a função que altera o registro no banco quando a sessão do usuário for finalizada.-----------------------------------------------------Sub Session_OnEnd EXECUTA_FUNÇÃO_DE_LOGOUTEnd Sub-----------------------------------------------------