IE 10ブラウザでASPを使用できないことを解決する.NETフォーム認証ログインの問題

1629 ワード

IE 10におけるSessionの紛失問題は多くの業界関係者の注目を集めている.
今日、IE 10に当社のウェブサイトに登录していることを発见した时、他のメニューをクリックすると、ページは自动的に登录ページに戻り、后でチェックすると、IE 10が送ったHTTPヘッダと.AUTH Cookieは問題ありませんが、フォーム検証メカニズム(FormsAuthentication)を使用すると、そのユーザーがログインしていると判断できず、保存されているセッションは常に失われます.
後で確認しますこれはASPです.NET 2.0,3.5,4.0のBugsは、これらのバージョンではIE 10のUser-Agentヘッダ文字列を認識できないため、ユーザブラウザのバージョンを認識できず、ASPに導く.NETの特定機能が失効する、ビューアがCookies機能をサポートしていない、Cookieに関連するプログラムコードなどを処理していないため、ブラウザにサーバから戻るSessionタグを保存することができず、紛失等を招くと考える.
この問題はマイクロソフトの公式確認を経て、IE 10のBugであり、この問題を修復するために2つのHOTFIXを発表しました.皆さんは同じ問題に遭遇した場合、以下の説明を参考にしてください.
KB2600088:
HotfixはMicrosoftに適用されます。NET Framework 4.0のASP.NET[英語]
KB2608565:
Hotfixは.NET Framework 3.5.1のASP.NET[英語]
KB2600100:
Hotfixは.NET Framework 3.5 SP 1と.NET Framework 2.0 SP 2のASP.NET
簡単な解決策は、Webサイトのルートディレクトリにブラウザ定義ファイル(browser definition file)を追加することです.
手順は次のとおりです.
1.「App_Browsers」フォルダを追加
2.IE 10のような「*.browser」接尾辞のファイルを追加する.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> 
設定完了、問題解決