今日、IE10 で会社の Web サイトにログインし、他のメニューをクリックすると、ページは常に自動的にログイン ページに移動することがわかりました。確認したところ、IE10 によって送信された HTTP ヘッダーと .AUTH Cookie が見つかりました。は問題ありませんが、フォーム検証が使用されます。メカニズム (FormsAuthentication) はユーザーがログインしていることを判断できず、保存されたセッションは常に失われます。
その後、これは ASP.NET 2.0 のバグであることが判明しました。 、3.5 および 4.0 では、これらのバージョンは IE10 の User-Agent ヘッダー文字列を認識できないため、ユーザーのブラウザのバージョンを識別できず、ASP.NET の特定の機能の障害につながると考えられます。 Cookie 機能をサポートしておらず、Cookie などに関連するプログラム コードを処理しないため、ブラウザはサーバーから返されたセッション識別情報を保存せず、損失などが発生します。
この問題は、によって公式に確認されています。 Microsoft は、IE10 のバグです。この問題を修正するための 2 つのホットフィックスもリリースされています。同じ問題が発生した場合は、次の手順を参照してください:
KB2600088: ホットフィックスは Microsoft.NET Framework 4.0 の ASP.NET に適用されます。 [英語]
KB2608565: 修正プログラムは .NET Framework 3.5.1 の ASP.NET に適用されます [英語]
KB2600100: 修正プログラムは .NET Framework 3.5 SP1 および .NET Framework 2.0 SP2 の ASP.NET に適用されます [英語]
簡単な解決策Web サイトのルート ディレクトリにブラウザ定義ファイルを追加します
手順は次のとおりです:
1. 「App_Browsers」フォルダーを追加します
2. IE10 などのサフィックス「*.browser」を持つファイルを追加します。
3. 次のようにファイルの内容を追加します:
<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>
さらに ASP.NET はユーザーがログインしているかどうかを判断できず、IE10 でのセッションが失われる問題の解決策に関連する記事については、PHP に注意してください。中国語のサイトです!