Heim > Backend-Entwicklung > C#.Net-Tutorial > ASP.NET kann nicht feststellen, dass der Benutzer angemeldet ist und die Sitzung in IE10 verloren geht

ASP.NET kann nicht feststellen, dass der Benutzer angemeldet ist und die Sitzung in IE10 verloren geht

高洛峰
Freigeben: 2017-01-07 09:54:36
Original
1374 Leute haben es durchsucht

Heute habe ich festgestellt, dass die Seite immer automatisch zur Anmeldeseite zurückkehrt, wenn ich mich im IE10 bei einer der Websites meines Unternehmens anmelde und darauf klicke. Nach der Überprüfung habe ich festgestellt, dass kein Problem mit dem HTTP-Header vorliegt und .AUTH-Cookie, das von IE10 gesendet wird, aber mithilfe des Formularauthentifizierungsmechanismus (FormsAuthentication) nicht feststellen kann, dass sich der Benutzer angemeldet hat, und die gespeicherte Sitzung immer verloren geht

Anschließend wurde bestätigt, dass es sich um einen Fehler handelt in ASP.NET 2.0, 3.5 und 4.0, da diese Versionen die Headerzeichenfolge „User of IE10 -Agent“ nicht erkennen können, sodass die Version des Browsers des Benutzers nicht identifiziert werden kann, was zum Ausfall bestimmter Funktionen von ASP.NET führt Ich gehe davon aus, dass der Browser die Cookies-Funktion nicht unterstützt und keinen Cookie-bezogenen Code usw. verarbeitet, was dazu führt, dass der Browser fehlschlägt. Die vom Server zurückgegebene Sitzungs-ID wird nicht gespeichert, was zu Verlusten usw. führt.

Dieses Problem wurde von Microsoft offiziell bestätigt und ist ein Fehler von IE10. Zur Behebung dieses Problems wurden außerdem zwei HOTFIX-Fehler veröffentlicht. Wenn Sie auf dasselbe Problem stoßen, lesen Sie bitte die folgenden Anweisungen:
KB2600088: Hotfix gilt zu ASP.NET in Microsoft.NET Framework 4.0 [Englisch]
KB2608565: Hotfix gilt für ASP.NET in .NET Framework 3.5.1 [Englisch]
KB2600100: Hotfix gilt für ASP.NET in . NET Framework 3.5 SP1 und .NET Framework 2.0 SP2 [Englisch]
Die einfache Lösung besteht darin, eine Browserdefinitionsdatei im Stammverzeichnis der Website hinzuzufügen (Browserdefinitionsdatei)

Die Schritte sind wie folgt:
1. Fügen Sie einen „App_Browsers“-Ordner hinzu
2. Fügen Sie eine Datei mit dem Suffix „*.browser“ hinzu, z. B. IE10.browser. 3. Fügen Sie den Dateiinhalt wie folgt hinzu:

<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>
Nach dem Login kopieren


Weitere verwandte Artikel darüber, wie ASP.NET nicht feststellen kann, dass der Benutzer angemeldet ist und die Sitzung in IE10 verloren geht, finden Sie im PHP Chinese Net!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage