Maison >développement back-end >Tutoriel C#.Net >ASP.NET ne peut pas déterminer que l'utilisateur est connecté et la session est perdue dans la solution IE10.
Aujourd'hui, j'ai constaté que lorsque je me connecte à l'un des sites Web de mon entreprise dans IE10 et que je clique sur d'autres menus, la page revient toujours automatiquement à la page de connexion. Après vérification, j'ai constaté que l'en-tête HTTP et le cookie .AUTH étaient envoyés. par IE10, tout va bien, mais lors de l'utilisation, le mécanisme d'authentification par formulaire (FormsAuthentication) ne peut pas déterminer que l'utilisateur s'est connecté et la session enregistrée est toujours perdue
Par la suite, il a été constaté qu'il s'agissait d'un bug. ASP.NET 2.0, 3.5 et 4.0, car ces versions ne peuvent pas reconnaître l'utilisateur de la chaîne d'en-tête IE10 -Agent, de sorte que la version du navigateur de l'utilisateur ne peut pas être identifiée, ce qui entraîne l'échec de fonctions spécifiques d'ASP.NET. que le navigateur ne prend pas en charge la fonction Cookies et ne traite pas le code lié aux cookies, etc., provoquant ainsi l'échec du navigateur. L'ID de session renvoyé par le serveur n'est pas enregistré, provoquant une perte, etc.
. Ce problème a été officiellement confirmé par Microsoft et est un bug d'IE10. Deux HOTFIX ont également été publiés pour résoudre ce problème. Si vous rencontrez le même problème, veuillez vous référer aux instructions suivantes :
KB2600088 : Le correctif s'applique à. ASP.NET dans Microsoft.NET Framework 4.0 [anglais]
KB2608565 : le correctif s'applique à ASP.NET dans .NET Framework 3.5.1 [anglais]
KB2600100 : le correctif est applicable à ASP.NET dans .NET Framework 3.5 SP1 et .NET Framework 2.0 SP2 [anglais]
La solution simple consiste à ajouter un fichier de définition de navigateur dans le répertoire racine du site Web (fichier de définition de navigateur)
Les étapes sont les suivantes :
1. Ajoutez un dossier "App_Browsers"
2. Ajoutez un fichier avec le suffixe "*.browser", tel que IE10.browser
3. Ajoutez le contenu du fichier comme suit :
<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>