une question qui revient sur plusieurs forums pour le développement web.
Pour la faq ASP.NET, version Delphi.NET, dans section 5.Navigation.
[QR] Comment fermer une session à la fermeture du navigateur?
En utilisant l'évènement Javascript onBeforeUnload, nous pouvons faire n'importe quelle action lorsque l'utilisateur ferme le navigateur par la croix.
NB : ne pas utiliser l'évènement Javascript onUnload qui est surchargé par l'évènement ASP.NET onUnload.
Pour ce faire :
- dans le code aspx de la page où vous voulez capter l'évènement "fermeture du navigateur" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [...] <head> <title></title> <script language="javascript" id="clientEventHandlersJS"> function window_onbeforeunload() { window.navigate('disconnect.aspx'); //ne pas oublier de préciser le chemin si vous mettez la page dans un autre répertoire } </script> </head> <body language="javascript" onbeforeunload="return window_onbeforeunload()"> [...]- Créez la page disconnect.aspx.
Avec Delphi 2005 : menu Fichier/Nouveau/Autres... puis sélectionnez Nouveaux fichiers ASP.NET/Page ASP.NET.- Mettez ensuite ceci dans l'évènement Page_Load de cette page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TDisconnect.Page_Load(sender: System.Object; e: System.EventArgs); begin Session.Abandon; // pour terminer la session proprement //mettez ici le code que vous souhaitez exécuter à la fermeture du navigateur. end;
Résultat : lorsque l'utilisateur fermera son navigateur, l'évènement Session_End du global.asax se déclenche.
Pour l'utilisation des sessions et du fichier global.asax, je vous conseille de lire ce document de Ditch.
Si vous avez des frames, mettez ce code dans une seule frame.
Exemple : vous avez une page default.aspx qui contient des frames, une frame "coteGauche" qui contient toujours une page navbar.aspx et une frame "content" qui contient n'importe quelle page dans le reste. Mettez le second bout de code uniquement dans navbar.aspx.
Partager