Kalvaitir Posted July 18, 2014 Posted July 18, 2014 Boa tarde! Observei que se eu clico no fechar do navegador, o uniGui não encerra a sessão. A sessão é encerra quando ultrapassa o timeout dela. Alguém já passou por isso? Quote
Luiz Lenhardt Posted August 6, 2014 Posted August 6, 2014 Olá, Este é o comportamento padrão para aplicações WEB. Qualquer aplicação WEB possui este comportamento, eu tenho experiência em desenvolvimento Java J2EE e o comportamento para as sessões é este mesmo. Você define o timeout da sessão e quando o usuário deixa de utilizar a aplicação, fecha o navegador, fecha a aba da aplicação ou fica parado em uma mesma página até o timeout ser atingido, quando o timeout é atingido a sessão é excluída. Isso não é um problema, é uma característica das aplicações WEB. O tempo ideal do timeout da sessão depende muito das características da sua aplicação. Por exemplo eu tenho uma aplicação de consulta onde os usuários entram fazem consultas e vão embora, neste caso eu defini o timeout em 5 minutos, porque eu sei q a aplicação é apenas para consulta e ninguém tem q ficar muito tempo realizando atividades demoradas. Por outro lado eu tenho outra aplicação onde os usuários utilizam a aplicação o dia todo, neste caso eu fiz com que o timeout nunca seja atingido e assim a sessão nunca termina, vc pode me perguntar, mas se um usuário entrar 10 vezes terá 10 sessões, sim, para resolver isso existe uma configuração no uniGUI esta em: ServerModule->ServerLimits->SessionRestrict Na propriedade SessionRestrict ela pode assumir os seguintes valores: -SrNone -> Sem restrição, comportamento padrão. -SrOnePerIP -> Sua aplicação aceitará apenas uma sessão por número IP. (isso pode ser um problema pois se vc estiver atrás de um firewall todas sessões terão o mesmo IP). -SrOnePerPC -> Sua aplicação aceitará apenas uma sessão por Computador, caso o usuário feche o navegador a sessão dele fica ativa, quando ele retornar o UnigGUI vai saber q tem uma sessão abandonada e vai excluir a sessão anterior e criar uma nova, com isso sua aplicação não vai explodir por causa das sessões. O Unigui é muito flexível e vc também pode programar outra forma de comportamento para as sessões, na unit ServerModule tem o seguinte evento que vc pode programar. procedure TUniMainModule.UniGUIMainModuleSessionTimeout(ASession: TObject; var ExtendTimeOut: Integer); begin if not AllowTerminate then begin ExtendTimeOut := 900000; AllowTerminate := True; end; end; Att, Luiz Quote
Marlon Nardi Posted August 6, 2014 Posted August 6, 2014 http://forums.unigui.com/index.php?/topic/2967-kill-a-session-when-browser-is-closed/?hl=sessionclosed&do=findComment&comment=13714 Quote
Kalvaitir Posted August 13, 2014 Author Posted August 13, 2014 Obrigado, eu setei a propriedade TerminateOnBrowserClose = True no UniMainModule! E deu certo! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.