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.

ASP.NET ne peut pas déterminer que l'utilisateur est connecté et la session est perdue dans la solution IE10.

高洛峰
高洛峰original
2017-01-07 09:54:361393parcourir

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>


Pour plus d'articles connexes sur la façon de résoudre le problème de l'incapacité d'ASP.NET à déterminer que l'utilisateur est connecté et perd la session dans IE10, veuillez prêter attention au chinois PHP. filet!


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn