2010-06-15 5 views
2

Apparemment dans IE8, il y a cette option 'Préserver les données du site Web des favoris', même si je décoche le navigateur, les cookies seront conservés jusqu'à la fermeture de la dernière fenêtre.Comment forcer la suppression des cookies même si une fenêtre est toujours ouverte?

Scénario de problème. dis je me suis connecté à somesite.com, puis sans me déconnecter, j'ai fermé la fenêtre, mais il y avait encore une autre fenêtre IE8 ouverte. Dans ce cas, IE8 conservera les cookies de ce site. Donc, si j'ai ouvert le site à nouveau (même fenêtre ou une autre), le site ne demandera pas d'informations de connexion.

Le client souhaite que l'application Web soit déconnectée dès que l'utilisateur ferme le navigateur. Puis-je forcer la suppression des cookies que IE8 enregistre? ou peut-être que je peux empêcher l'utilisateur de fermer la fenêtre jusqu'à ce que je simule un clic sur le bouton de déconnexion?

Répondre

2

Merci à tous, j'ai essayé plusieurs méthodes, y compris la vôtre et je n'ai pas réussi à le faire fonctionner.

Ma solution était la suivante: Lorsque l'utilisateur clique sur le bouton X (fermeture du navigateur), une fonction javascript onunload sera appelée. Cette fonction simule le clic sur le bouton logout. La fonction met le navigateur en pause jusqu'à ce que la fermeture de session soit exécutée.

code:

window.onunload = function() { 
    document.getElementById('logoutLink').click(); 
    windows.setTimeout(doNothingFunction,2000); 
} 

Un effet secondaire, est que cette fonction sera effectivement appelé à chaque fois que l'utilisateur navigue sur la page en cours, non seulement à la fermeture de la fenêtre.
Solution, lors de la navigation de page en page, un indicateur à savoir closingWindow est défini sur false. Mais lorsque l'utilisateur clique sur le bouton X, le drapeau ne sera pas mis à false.

La nouvelle fonction pour résoudre l'effet secondaire.

window.onunload = function() { 
    if (closingWindow){ 
     document.getElementById('logoutLink').click(); 
     windows.setTimeout(doNothingFunction,2000); 
    } 
} 
1

Pouvez-vous définir un cookie avec une date d'expiration négative dans l'événement onunload du navigateur?

1

Vous pouvez contrôler l'existence de la fenêtre en envoyant des requêtes ajax frefuent. Lorsque le client charge une nouvelle page, vous devez vérifier l'heure de la dernière demande de vérification.

Questions connexes