Uma dica rápida de como fazer com que a sessão só expire depois de 1 ano
Tem dias que a gente tem que voltar ao básico pra resolver um problema. E hoje foi um desses dias.
Temos um projeto onde usamos Forms Authentication para login. Nada muito complexo: É um sistema de avaliação com algumas perguntas de multipla escolha. Não customizamos o Forms Authentication pois só queríamos um nível básico de autenticação. Só que os usuáros começou a ter problemas e, depois de algum tempo, achamos a solução.
O problema
O usuário logava, trabalhava mas, depois de um tempo, o sistema voltava automaticamente para a tela de login sem salvar as informações.
A solução
No nosso caso, como o sistema é pequeno e só ficava inconveniente para o usuário ter que colocar as respostas novamente, resolvemos o problema colocando a sessão para expirar em 1 ano. Eu sei, é muito. Mas dá pra trabalhar com folga. Eis o código:
<authentication mode="Forms"> <forms loginUrl="~/" timeout="525949" /> <authentication>
Existem, no entanto, outras soluções. Tem uma que chamam de "heartbeat" onde a sessão é atualizada a cada 5 minutos via ajax. Talvez eu faça mini projeto em forma de tutorial e poste aqui qualquer dia desses. ;-)