2010-10-22 6 views
0

Il y a beaucoup de questions déjà posées sur ce qu'il faut faire lorsque la session expire lors d'une requête Ajax. L'une des solutions consiste à placer un en-tête dans la réponse qui redirige vers la page de connexion. Mon site ne fait que la première publication, puis toutes les requêtes Ajax, ce qui fait que la session expire dans l'heure déterminée, mais est-il possible de mettre à jour le message de la session dans les requêtes Ajax (dans le gestionnaire ASP assiste à la demande), de sorte que la session expire mais seulement quand j'ai passé le temps d'attente sans faire aucune demande au serveur du tout?La session ASP.NET expire dans la requête Ajax

+0

Je ne sais pas si je comprends bien votre question. Vous avez dit "mettre à jour le délai d'expiration de la session dans la requête AJAX". Normalement, vous n'avez pas besoin de le faire explicitement. Même si la requête est une requête AJAX, le cycle de vie de la page ne change pas un peu. Les modules/gestionnaires fonctionneront de la même manière qu'ils le devraient. Par conséquent, vos informations liées à la session seront automatiquement mises à jour. –

+0

Ok, comme l'a dit ovm, Session devrait être maintenu en vie par la requête Ajax. Je pensais que lors de la demande, une requête du serveur sera faite, mais le cycle de vie de la page ne se produira pas. Merci – Soulbe

Répondre

1

Vous pouvez implémenter un KeepOive SessionObserver (JavaScript) et suivre les délais d'expiration des sessions vous-même. De cette façon, vous pouvez intercepter SessionTimeouts des utilisateurs inactifs, les rediriger avec un message et d'autres choses utiles. En outre, les sessions doivent être maintenues actives lors de l'émission de requêtes Ajax. Il se peut qu'ils ne soient conservés que lorsque l'attribut EnableSession est défini pour le service Web correspondant. Vous pouvez essayer ça aussi.

Par exemple,

[WebMethod(EnableSession = true)] 
public string WebServiceMethod(){ return "I'm session aware.";} 
Questions connexes