91 votes

IE10 User-Agent empêche ASP.Net de renvoyer Set-Cookie (IE10 ne configure pas les cookies)

Résumé

ASP.Net ne pas envoyer un Set-Cookie d'en-tête lors de l'utilisation d'IE 10. Sens que, par exemple, vous ne pouvez pas vous connecter à une ASP.Net site à l'aide d'IE10 lors de l'utilisation de l'Authentification de Formulaires par exemple.

Détail

Nous sommes actuellement en train de tester l'un de nos legacy applications web contre IE 10 [Extrait 2].

Lorsque vous tentez de vous connecter en utilisant l'Authentification par Formulaires, nous n'avons pas un Set-Cookie - tête de la réponse, si le user-agent est celui de IE 10. Nous avons essayé cela avec un vide .Net 2 et .Net 4 site.

Parce que nous ne pouvions pas/ne serait pas le croire, on a même couru à la suite de la requête HTTP manuellement par le biais d' telnet - après à l'aide de tous les outils habituels et a obtenu la même réponse.

GET http://test.ourdomain.co.uk/ HTTP/1.1
Accept: */*
Host: test.ourdomain.co.uk
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Content-Length: 0

Au-dessus de la requête HTTP ne retourne aucun Set-Cookie dans la réponse. Pourtant, si on se contente de changer le User-Agent pour Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0) ça marche!!!

Une autre personne peut reproduire? Je ne trouve pas de problème connu avec IE10 témoins autres que les un problème que les effets non-standard des formats d'URL.

Correctif

Après devio posté l'original de la réplique, avec une solution de contournement, nullptr a confirmer qu'il y a maintenant un correctif pour ce.

http://support.microsoft.com/kb/2600088

J'ai mis le correctif à la question principale c'est juste pratique pour référence future, mais s'il vous plaît faire voter les utilisateurs mentionnées.

71voto

Dave Sumter Points 1272

Le problème réside avec certains IIS instances de penser que IE10 est un cookieless navigateur (c'est à dire cant en charge les cookies). Dans notre cas le serveur était le cookie d'authentification et de l'envoyer au navigateur, mais a ensuite été en ignorant le cookie sur les demandes ultérieures.

La solution est soit de patch les capacités du navigateur de sorte qu'il sait IE10 peut faire des cookies (décrite dans une autre réponse sur cette page), ou de changer le comportement par défaut pour le forcer à utiliser des cookies, même s'il pense que le navigateur ne peut pas faire des cookies.

Nous venons d'ajouter les éléments suivants à notre section sur les formulaires web.config:

cookieless="Utilisercookies"

<authentication mode="Forms">
  <forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" />
</authentication>

66voto

devio Points 22981

Trouvé cette entrée sur MS Connect , le comportement est un bogue reconnu.

Solution de contournement suggérée (à partir de l'entrée):

== Contournement ==

En attendant, pour que cela fonctionne et pour éviter des problèmes similaires à l'avenir, j'utilise un fichier ~ \ App_Browsers \ BrowserFile.browser avec les éléments suivants:

 <browsers>
<browser refID="Default">
<capabilities><!-- To avoid wrong detections of e.g. IE10 -->
<capability name="cookies" value="true" />
<capability name="ecmascriptversion" value="3.0" />
</capabilities>
</browser>
</browsers>
 

33voto

nullptr Points 5432

Il y a une disposition d'un correctif pour ce problème[1].

1) http://support.microsoft.com/kb/2600088
1) http://support.microsoft.com/kb/2600217 (remplace la précédente KO)

Aussi, [2] suggère que ce sera frappé de Windows mise à Jour en janvier 2012.

2) http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

3voto

user2191793 Points 31

Merci pour l'aide. Cela a fonctionné non.

  1. J'ai copié le fichier du site sur C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers

  2. Exécuter dans une invite de commande C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i

  3. Redémarrez IIS.

  4. Testé le site et cela fonctionne sans aucune erreur.

Merci encore pour le feed-back

2voto

oski Points 61

Une mise à jour pour la réponse nullptr.

J'ai essayé aujourd'hui de télécharger le Microsoft KB2600088. Après avoir reçu le lien par courrier électronique, j'ai cliqué dessus, puis la page qui indique qu’il n’est plus disponible s’affiche.

Essayez ceci: http://support.microsoft.com/kb/2600217

Ce lien remplace les KB2600088 et KB2628838.

Microsoft .Net Framework 4.5 est également disponible maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X