2010-10-22 4 views
23

J'ai une application MVC 2 où le délai d'attente est fixé à 2880 (minutes si je comprends bien, mais même si elle est secondes il y a un problème):Pourquoi un délai d'attente très court dans ASP.NET MVC?

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

Maintenant, cela devrait alors dire 48 heures, ou au moins 48 minutes (si la valeur est en secondes). Mais l'utilisateur est déconnecté après seulement quelques minutes d'inactivité ...

Pourquoi est-ce? Toute aide appréciée!

+0

Avez-vous essayé avec différents navigateurs? J'ai vu ce problème avec un utilisateur isolé naviguant avec Firefox une fois. –

+0

Oui, le problème est survenu avec Firefox, Chrome, IE et Safari ... – Anders

+0

Ce [post du blog] (http://weblogs.asp.net/owscott/archive/2006/07/15/Forms-Authentication-Timeout .aspx) parle d'une situation similaire; peut-être que le paramètre est remplacé quelque part dans le code. –

Répondre

32

trouvé la réponse, enfin, après beaucoup de recherche sur Google ...

Vous devez définir un machinekey personnalisé dans le fichier web.config. J'ai utilisé ce générateur:

http://aspnetresources.com/tools/machineKey

Cela semble avoir à faire quelque chose avec « recyclage » sur l'hôte Web, ce qui provoque l'utilisateur d'être déconnecté, si je comprends correctement.

De toute façon, ça marche bien maintenant!

+0

Wow, c'est vraiment une information utile. Merci beaucoup! J'ai eu le même problème, et il l'a résolu. –

+0

pourquoi cela se passe-t-il? – Duk

+4

le lien n'est plus actif, pouvez-vous m'en dire plus ici. En fait, je suis confronté au même problème. J'ai fourni le délai d'attente pour l'authentification des formulaires comme timeout = "2880" slidingExpiration = "true" et sessionState timeout à 1440. Mais la session expire toujours après 10-15 minutes. Quel peut être le problème. – gokul

-3

2880 est donné en minutes. Il se déconnectera automatiquement si vous ajoutez slidingExpiration="true". Voir l'exemple ci-dessous.

<forms loginUrl="~/Account/LogOn" timeout="2880" slidingExpiration="true"/> 
+1

Ce n'est pas correct. Il ne se déconnecte pas automatiquement. Lorsque SlidingExpiration est défini sur true, l'intervalle de temps pendant lequel le cookie d'authentification est valide est réinitialisé à la valeur de la propriété Expiration Timeout. – Paul

Questions connexes