Como fazer com que a sessão não expire usando Forms Authentication

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. ;-)