2017-10-19 7 views
0

Je veux une session pour durer quelques jours, même si la fenêtre du navigateur se ferme, donc j'utilisé ces paramètres dans Startup.cs:asp.net core augmente la durée de la session. IdleTimeout ne fonctionne pas

 services.AddSession(options => { 
      options.IdleTimeout = TimeSpan.FromHours(720); 
     }); 

Cependant, il semble avoir aucun effet. La session continue à se réinitialiser après un certain temps même si l'onglet du navigateur avec le site Web reste ouvert. Comment puis-je réparer cela ?

+0

J'ai le même problème avec le réglage de IdleTimeout à 720 minutes (12 heures). Ma session expire après environ 5 heures et demie. Je l'exécute sur IIS et je m'assure que le délai d'inactivité dans iis a été réglé sur 12 heures et qu'il ne recyclait pas le pool d'applications au mauvais moment. Ne fonctionne toujours pas. – mikelt21

+0

Le cookie de session est défini pour expirer lorsque la session de navigation se termine pour une raison quelconque. –

+0

Est-ce que cela peut se produire alors que l'onglet du navigateur est toujours ouvert? Cela ne me dérange pas que la session expire lorsque je ferme le navigateur mais pour le moment elle expire même lorsque le site est ouvert. – mikelt21

Répondre

1

Cela se produit car le cookie de session expire dans session. IdleTimeout réglage combien de temps serveur doit stocker session et il est « invisible » au navigateur

En plus de détails: Microsoft.AspNetCore.Session utilisant CookieBuilder de Microsoft.AspNetCore.Http.Abstractions qui fixe default(DateTimeOffset?) dans Expires dans CookieOptions cuz Expiration.HasValue retour false

Si vous passer outre rappeler au sujet public override TimeSpan? Expiration en SessionCookieBuilder

+0

Pouvez-vous poster un exemple de code pour le faire? –