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

Résumé

ASP.Net ne renvoie pas d’en Set-Cookie tête Set-Cookie lors de l’utilisation d’IE 10. Par exemple, vous ne pouvez pas vous connecter à un site ASP.Net via IE10 lorsque vous utilisez, par exemple, l’authentification par formulaire.

Détail

Nous testons actuellement l’une de nos anciennes applications Web sur IE 10 [Aperçu 2].

Lorsque vous essayez de vous connecter à l’aide de l’authentification par formulaire, nous ne recevons pas d’en Set-Cookie tête Set-Cookie si l’agent utilisateur est celui d’IE 10. Nous l’avons essayé avec un site vierge .Net 2 et .Net 4.

Parce que nous ne pouvions pas / ne pouvions pas le croire, nous avons même exécuté la requête HTTP suivante manuellement via telnet – après avoir utilisé tous les outils habituels – et 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 

La requête HTTP ci-dessus ne renvoie aucun Set-Cookie dans la réponse. Pourtant, si nous modifions simplement l’agent utilisateur en Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0) cela fonctionne!

Quelqu’un d’autre peut-il reproduire cela? Je ne trouve aucun problème connu avec les cookies IE10, à part un problème qui affecte des modèles d’URL non standard.

Correctif

Après que devio a publié la réponse d’origine, avec une solution de contournement, nullptr a confirmé qu’il existe maintenant un correctif pour cela .

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

J’ai promu le correctif sur la question principale car il est juste plus facile à utiliser pour référence future, mais veuillez s’il-vous-plaît choisir les utilisateurs mentionnés.

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 dans le futur, j’utilise un fichier ~ \ App_Browsers \ BrowserFile.browser avec les éléments suivants:

         

Le problème repose sur certaines instances IIS, pensant que IE10 est un navigateur sans cookie (c’est-à-dire qu’il ne supporte pas les cookies). Dans notre cas de problème, le serveur configurait le cookie d’authentification et le renvoyait au navigateur, mais ignorait alors le cookie lors de demandes ultérieures.

La solution consiste soit à patcher les fonctionnalités du navigateur afin de savoir que IE10 peut faire des cookies (décrits dans une autre réponse sur cette page), ou modifier le comportement par défaut pour le forcer à utiliser des cookies, même s’il pense que le navigateur ne peut pas créer de cookies.

Nous venons d’append ce qui suit à notre section formulaires dans web.config:

cookieless = “UseCookies”

    

Un correctif est disponible pour ce problème [1].

1) http://support.microsoft.com/kb/2600088
1) http://support.microsoft.com/kb/2600217 (remplace le précédent Ko)

De plus, [2] suggère que Windows Update sera disponible en janvier 2012.

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

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

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

  2. Exécuter dans l’invite de commandes 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

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 email, je l’ai cliqué puis il m’a conduit à la page qui dit qu’il n’est plus disponible.

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

Ce lien est un remplacement pour KB2600088 et KB2628838.

MIcrosoft .Net Framework 4.5 est également disponible maintenant.

Installé les différents correctifs que tout le monde mentionne et pour quelle que raison que ce soit, le problème n’a pas été résolu.

Installé .NET Framework 4.5 complet et le problème a disparu.

Vous n’avez pas besoin de mettre à jour les projets pour cibler 4.5. Installez-le simplement sur le serveur.