Cookie de session perdu avec IE7
-
11-07-2019 - |
Question
J'ai une application ASP.NET 2.0. La page de connexion redirige deux fois lorsque la connexion a réussi. Cela fonctionne correctement sur tous les serveurs d’environnement de test et de production, sauf un. Nous pouvons voir avec Fiddler que le login redirige vers la deuxième page et il redirige vers la troisième. Lorsque vous arrivez à la troisième page, le cookie d'authentification est perdu et la page est redirigée vers la connexion. Comme mentionné, cela ne se produit que sur un serveur de production avec IE7. Cela fonctionne bien si nous essayons IE7 à partir du serveur lui-même. Il échoue uniquement à partir d'autres ordinateurs clients. Cela fonctionne parfaitement bien si je viens d'essayer la même chose de FireFox. Je peux voir clairement du violoniste que dans ce cas le cookie n’est pas perdu.
Des idées?
La solution
Définissez-vous un cookie avec un jeu de noms de domaine? Lorsque vous naviguez, votre URL contient-elle le nom de domaine?
" localhost " Les cookies ne fonctionnent pas vraiment comme des cookies de domaine et peuvent souvent disparaître.
HttpCookie contient le paramètre de domaine à définir.
Autres conseils
Il s’agit d’un tir long, mais le nom du serveur contient-il un trait de soulignement? Il y a quelque temps, un bogue IE empêchait de sauvegarder les cookies d'un nom de serveur / URL contenant un trait de soulignement. Par conséquent, si j'accédais au serveur par http: // nom_serveur , je ne pouvais pas enregistrer de cookie, mais y accéder via http: // intranetdnsalias fonctionnerait très bien.
Cela ressemble à un problème de configuration IIS. Avez-vous essayé de recréer le site Web sur ce serveur avec des valeurs par défaut?
Les dates sont consistantes? par exemple. 10.09.2008 == 09.10.2008 si les paramètres régionaux sont incorrects. Donc, si vous définissez une date d'expiration spécifique, cela peut être interprété comme étant en-US mais vous avez besoin d'en-NZ ou de quelque chose du genre.
Ou vous pourriez le définir comme une date UTC mais c’est-à-dire que l’ordinateur est UTC + 8, de sorte qu’il semble expirer rapidement?