Inquiridor
Problema com Session

Pergunta
-
Boa tade!
Senhores,
Estou desenvolvendo um projeto de uma aplicação web em ASP e até agora tenho, basicamente, a seguinte estrutura:
1. Um arquivo principal, chamado index.asp, no qual especifica dois frames, um chamado "topologin.asp" e "login.asp";
2 . O arquivo "login.asp", como o próprio nome já diz, é encarregada de fazer um login do usuário, através de integração com DB SQL Server e gravando algumas informações no object session do usuário;
Problema:
Eu executo a página index.asp, efetuo o logon e entro na página acessível apenas por usuários logados, blz, até aí tudo bem. O problema é que quando estou nessa página (vamos chamá-la de "restrita.asp") e efutou um refresh de página/F5, o navegador volta para a página inicial, ou seja, a "index.asp" e, pior ainda, aparentemente encerrra o objeto "session" do usuário, comm isso, eu preciso logar novamente.
Espero que tenha sido claro quanto a minha dúvida e ficarei muito grato, desde já, referente a qualquer ajuda.
Já pesquisei em vários artigos e ainda não encontrei nada que resolva o meu problema.
Obs.: Encontrei em um forum uma sugestão de um colega pedindo pra renomear o arquivo index.asp para index.html e, até resolveu, porém, isso impacta em outras coisas no meu projeto como, por exemplo, no arquivo web.config que, aparentemente, não aceita o valor "default.html" na sessão:
<system.webServer><defaultDocument><Files><add value="file"></Files></defaultDocument></system.webServer>.
Att, Alan Roberto Analista de Sistemas
- Editado Alan Roberto quinta-feira, 11 de abril de 2013 20:49
Todas as Respostas
-
Cara,
Você pode bloquear o F5 através de JavaScript para evitar esse problema. Uma outra solução seria trabalhar com usuários logados por uma tabela no banco, após um certo tempo sem utilização do sistema ou encerramento do mesmo, você deleta dessa tabela o login.
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos quinta-feira, 11 de abril de 2013 23:09
-
Samuel,
Então, o que vc está me sugerindo, seria um paleativo, porém, eu queria saber qual o real problema que está ocasionando esse comportando do meu sistema e, consequentemente, a solução para ele, ou seja, alguma configuração no arquivo web.config ou até mesmo algum código que evite de, ao fazer um refresh na página, o browser volte o usuário para a tela incial de login e, além de tudo, não mate o objeto session.
Att, Alan Roberto Analista de Sistemas
-
-
Já tentou aumentar o timeout da session ? veja se essa referência lha ajuda :
Espero ter ajudado
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br- Editado Davi Murilo segunda-feira, 15 de abril de 2013 16:45
- Sugerido como Resposta Samuel Rodrigues dos Anjos segunda-feira, 15 de abril de 2013 17:02
-
Já tentou aumentar o timeout da session ? veja se essa referência lha ajuda :
Espero ter ajudado
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br
Davi Murilo,
Muito obrigado pela dica, porém, o parâmetro session.timout do meu objeto session já está definido para 30 minutos e acredito que esse não seja o problema e muito menos a solução, já que assim que eu logo e vou pro meu frame top "topo.asp", ou seja, assim que estou nessa página e efetou um F5/refresh de página eu sou direcionado para pagína inicial, ou seja, pra index.asp.
Acredito que o problema esteja pelo fato de eu estar usando frame.
Att, Alan Roberto Analista de Sistemas
-
Senhores,
Mais alguma dica?
Att, Alan Roberto Analista de Sistemas
- Editado Alan Roberto segunda-feira, 15 de abril de 2013 20:01
-
Já tentou fazer isso sem Iframe , ou seja , com Ajax , ou senão com os include file do asp.
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br -
Davi Murilo,
Não tentei, mas acredito que isso deixará meu projeto mais complexo, ou seja, imagina que hoje eu tenho a página que fica no Parent.frameTop mostrando informações da sessão do usuário e eu chamado páginas auxiliares pra ser a Parent.frameMain a medida que o usuário clica em algum link na página, fazendo conforme você falou, eu vou ter que alterar basicamente todo as estruturas das minhas páginas...
Att, Alan Roberto Analista de Sistemas
-
-
-
Alan, se você está usando frame, não tem muito jeito não.
Acredito que a gambiarra mais prática seria tentar anular a tecla f5 e colocar no topo um botão/link/inputbutton para realizar a atualização da página.
A melhor forma para corrigir esse problema seria a refatoração de suas páginas.
Ao invés de usar um frame, crie um include com o conteudo do topo e inclua na(s) outra(s) página(s). Desta forma, qualquer alteração no include do topo também será refletida em todo site e o usuário pode clicar no f5 a vontade. rs
Cordialmente,
Jonas Sene Torres
-
Alan, se você está usando frame, não tem muito jeito não.
Acredito que a gambiarra mais prática seria tentar anular a tecla f5 e colocar no topo um botão/link/inputbutton para realizar a atualização da página.
A melhor forma para corrigir esse problema seria a refatoração de suas páginas.
Ao invés de usar um frame, crie um include com o conteudo do topo e inclua na(s) outra(s) página(s). Desta forma, qualquer alteração no include do topo também será refletida em todo site e o usuário pode clicar no f5 a vontade. rs
Cordialmente,
Jonas Sene Torres
Jonas,
Então, pelo que estou vendo, o jeito vai ser isso mesmo, ou seja, alterar a estrutura do meu projeto, porém, o que acho estranho é que esse projeto roda até hoje em um cliente e, na verdade, eu apenas peguei o fonte para tentar adpatar para outro cliente e lá no cliente original, acredito que não esteja dando nenhum pau... :(
Att, Alan Roberto Analista de Sistemas