none
Problema com Session RRS feed

  • 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
    quinta-feira, 11 de abril de 2013 20:40

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

    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

    sexta-feira, 12 de abril de 2013 03:04
  • Alguém?

    Att, Alan Roberto Analista de Sistemas

    segunda-feira, 15 de abril de 2013 16:39
  • Já tentou aumentar o timeout da session ? veja se essa referência lha ajuda :

    http://codigofonte.uol.com.br/codigos/codigo.asp?categoria=asp&subcategoria=ambiente&codigo=aumentando-o-tempo-de-processamento-do-servidor-iis&aux=&7&cachecommand=bypass&cachecommand=bypass

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br


    segunda-feira, 15 de abril de 2013 16:44
  • Já tentou aumentar o timeout da session ? veja se essa referência lha ajuda :

    http://codigofonte.uol.com.br/codigos/codigo.asp?categoria=asp&subcategoria=ambiente&codigo=aumentando-o-tempo-de-processamento-do-servidor-iis&aux=&7&cachecommand=bypass&cachecommand=bypass

    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

    segunda-feira, 15 de abril de 2013 17:14
  • Senhores,

    Mais alguma dica?


    Att, Alan Roberto Analista de Sistemas


    • Editado Alan Roberto segunda-feira, 15 de abril de 2013 20:01
    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

    segunda-feira, 15 de abril de 2013 20:02
  • 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

    segunda-feira, 15 de abril de 2013 20:34
  • Senhores,

    Não desistam de mim, por favor...rsrs


    Att, Alan Roberto Analista de Sistemas

    terça-feira, 16 de abril de 2013 11:49
  • Senhores?

    Att, Alan Roberto Analista de Sistemas

    quarta-feira, 17 de abril de 2013 12:56
  • 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

    segunda-feira, 6 de maio de 2013 18:07
  • 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

    segunda-feira, 6 de maio de 2013 18:45