2010-10-13 2 views
0

J'ai un problème de connexion multiple dans asp.net.Supprimer le cache lorsque le navigateur Web est fermé

cas cela se:

  • utilisateur Connexion X "user1" dans le navigateur Web.
  • Ensuite, l'utilisateur Y se connecte également en tant que "user1" dans un autre navigateur Web.
  • L'utilisateur Y a reçu le message d'erreur "Un autre utilisateur se connecte à un compte".

Cela fonctionne comme prévu.

Si X, fermez leur navigateur Web. Ensuite, essayez à nouveau de vous connecter en tant que "user1". X obtenir également "Un autre utilisateur se connecter à un compte". Donc, en essayant de déboguer, j'ai trouvé que la session est supprimée lorsque le navigateur Web est fermé, mais le cache reste dans le navigateur Web. Tout le monde a une idée sur la façon d'effacer le cache lorsque l'utilisateur ferme son navigateur (pas l'onglet).

Regard.

Répondre

0

Il n'existe aucun moyen fiable d'obtenir une notification lorsque le navigateur est fermé.

Le mieux que vous pouvez faire est d'obtenir une notification qu'il est toujours ouvert et mettre en œuvre votre propre délai d'attente. Utilisez un rappel ajax sur une minuterie pour envoyer une requête ping au serveur "Je suis toujours ouvert". Réglez-le à toutes les 5 ou 10 ou 30 secondes ou tout ce dont vous avez besoin et quand vous n'en avez pas sur le serveur pour l'instant, vous savez que le navigateur a été fermé.

+0

N'est-ce pas appelé "Reverse AJAX" ou quelque chose? (juste curieux) – RPM1984

+0

@ RPM1984, non, "Reverse ajax" alias "Comet" alias "long polling" sont une méthode d'envoi de données du serveur au client à la demande. Puisque, dans ce cas, il ne s'agit pas de renvoyer des données du serveur au client, il n'est pas nécessaire de garder la connexion ouverte. –