Bonjour à tous.
Tout d'abord je travaille sous VisualStudio2003 / Framework .NET en version 1.
Voici mon problème:
Je dois pouvoir intercepter la fermeture des pages de mon application. Tout d'abord car je dois pouvoir mettre fin à la session de la personne qui ne se déconnecte pas à l'aide du lien prévu à cet effet et aussi car chaque utilisateur possède une connexion à une BDD. Je ne souhaite donc pas attendre le timeout.
J'ai beaucoup cherché et j'ai mis en place la solution suivante: utiliser l'evenement javascript onbeforeunload auquel on associe une méthode qui renvoie sur une page de deconnexion qui ne sert qu'à mettre fin à la session de l'utilisateur via un session.abandon() dans la méthodePage_Load(). Tout cela semblait parfait puisqu'en fermant une page l'evenement onbeforeload provoque l'envoi sur la page de deconnexion et ainsi la fin de la session et la fermeture de la connexion à la BDD. Or je me suis apercu que aléatoirement (par exemple lorsqu'on post une page ou que l'on navigue entre les pages) l'evenement onbeforeunload intervient et on se retrouve sur la page de deconnexion.
Voici donc mes questions :
Est-il possible d'intercepter la fermeture du navigateur ou de la page ?
Savez-vous si le comportement que je trouve aléatoire à une explication autre que celle de la loi de Murphy ?
Voyez-vous une autre solution qui me permettrai de ne pas attendre le timeout pour mettre fin à la session de l'utilisateur ?
En vous remerciant de m'avoir lu et en esperant avoir été clair, j'attends vos réponses.