none
Como manter uma sessão por mais tempo em memória ou enquanto o browser estiver aberto?

    Question

  • Estou tendo um problema no seguinte caso, tenho uma aplicação que usa forms authetication e que que pode ser logado e deslogado quando é requisitado, mas tipo se eu estou logado e fecho a aplicação (ou uma aba que ele estava aberta), e abro novamente (em outra aba sem fechar o navegador) o meu usuário continua logado (como o previsto), mais como toda minha validação de usuário é feita em banco de dados, eu salvo alguns atributos do usuário em  Sessions para pode-los recupera-los nas paginas seguintes, mas ao tentar recuperar por exemplo o id do usuário que salvei na  Session["USUARIO"] na pagina anterior quando loguei, ele estará nulo e não consigo recupera-lo, assim meu usuário fica logado mas não consigo mostrar o nome ou Id do usuário que está logado, pois a Session onde eu guardava essas informações já não existe mais. 

    Obs: Isso só ocorre quando fecho uma aba do navegador e abro outra, me parece que a session do Authentication Forms se mantem no navegador e é compartilhada entre as paginas(abas) e a Session que eu crio manualmente não se mantem após eu fechar a aba onde eu a criei.

    Gostaria de uma maneira de fazer com que a session criada manualmente tivesse o mesmo tempo de vida da session do authetication forms, para que só quando o usuário não estivesse mais logado que a session deixasse de existir.

    Ou uma maneira da Session ser mantida em um escopo maior do que ela permanece, que eu possa recupera-lá na próxima aba e se necessário finaliza-la manualmente assim como a criei.

    Se souberem algo maneira de manipular isso no asp.net com C#, desde de já agradeço.

    Att. Fernando Leal.


    Fernando
    Friday, December 09, 2011 12:31 PM

Answers