2008-11-25 10 views
2

J'essaie d'augmenter le délai d'attente sur toutes les sessions. Le site est hébergé par Godaddy, et il est écrit en Flash (côté client bien sûr) et asp.net sur le backend. J'ai ajouté ceci à mon web.config,Session Timeout ASP.Net

<sessionState timeout="720"> 

</sessionState> 

Est-ce vraiment tout ce que j'ai besoin de faire? Je préférerais ne pas laisser les sessions expirer, mais je suis sûr que le serveur a besoin de récupérer cette mémoire à un moment donné ... Je ne stocke rien dans la session, vraiment, je l'utilise juste pour suivre les progrès des utilisateurs à travers le site, et si un utilisateur est connecté ou non.

Merci pour tous les pointeurs ... toute la documentation semble trompeusement simple, et ça me rend nerveux ...

Répondre

7

Eh oui! Comme dans; Oui, c'est la seule chose dont vous avez besoin ...

Pour obtenir des "délais d'expiration sans fin", vous devez créer une requête HTTP d'arrière-plan (qui transmettra le cookie de session) au serveur toutes les 719 minutes . Bien que théoriquement, vous devez également avoir des sessions "Out of Process" en utilisant par ex. Une sorte de base de données ou quelque chose ...

Ou vous pouvez rouler votre propre gestionnaire de session, je pense que APS.NET a le soutien pour cela en utilisant une sorte de modèle d'adaptateur ou quelque chose, mais je ne suis pas sûr. Ensuite, vous pourriez avoir un « vraiment » séance sans fin ...

+0

Merci! La confirmation d'une personne «en direct» a augmenté mon niveau de sécurité 100 fois. –

+0

Pas de problème Matt :) –

5

Si vous utilisez l'authentification par formulaire, vous devez également définir les formulaires d'authentification délai d'attente dans votre web.config

Exemple:

<authentication mode="Forms"> 
    <forms 
    name=".ASPXAUTH" 
    loginUrl="/Home/Default.aspx" 
    defaultUrl="/Dashboard/Default.aspx" 
    protection="All" 
    timeout="30" 
    slidingExpiration="true" 
    /> 
</authentication>