Nous avons plusieurs pages dans notre application Ajax ASP.net qui actualisent automatiquement le contenu de UpdatePanels en fonction d'un événement de minuteur, mais le problème est que nous avons besoin d'attendre la session Web et l'actualisation automatique empêche cela. Y at-il un moyen d'empêcher l'événement de publication différée de modifier la session Web ou toute autre solution pour permettre à la session Web d'expirer pendant l'actualisation automatique du contenu du UpdatePanel?Comment empêcher la réinitialisation du délai d'expiration de la session lorsque le contenu de UpdatePanel est actualisé par un événement Timer?
Voici un exemple pour illustrer ce problème. J'ai mis le délai d'attente de session à 3 minutes et ai un temporisateur dans le UpdatePanel qui cochée toutes les minutes et modifie le contenu du UpdatePanel basé sur l'état courant. Une fois connecté, je navigue sur cette page et je ne fais rien pendant 5 minutes, puis j'essaie de cliquer sur une autre page et je suis toujours connecté car la session n'a pas expiré.
D'accord, je comprends ce que vous dites mais j'espérais une solution plus simple. Pour paraphraser, puisque la session n'est pas expirée en raison de la publication de l'événement Timer, vous suggérez de garder une trace de combien de temps l'utilisateur a été inactif en s'appuyant sur autre chose que le délai d'expiration de la session. Il pourrait même se greffer sur l'événement d'actualisation Timer. Ma seule préoccupation est qu'il semble que je finirais par devoir gérer manuellement le timeout de la session. – Brian
Sys.Services.AuthenticationService fait partie de Microsoft AJAX Library 1.0. C'est une bibliothèque JavaScript. Donc, ce que je dis, c'est que vous gardez une trace de l'activité des utilisateurs du côté client. Déplacement de la souris, etc. Vous déconnectez l'utilisateur avec un appel JavaScript à la fonction de déconnexion de l'objet Sys.Services.AuthenticationService. – knut
Pour mon cas, il serait nécessaire d'invalider la session plutôt que d'utiliser Sys.Services.AuthenticationService car le mécanisme de connexion est personnalisé et basé sur la session. Je crois que j'ai une solution qui n'implique aucun javascript ce qui est préférable mais j'ai besoin de le tester. Merci pour votre réponse et vos commentaires car cela m'a amené à réfléchir à ce problème d'une nouvelle manière qui a conduit à ma solution proposée. – Brian