IE10 User-Agentが原因でASP.NetがSet-Cookieを返送しない(IE10がCookieを設定しない)


91

概要

ASP.Netは、Set-CookieIE 10を使用している場合はヘッダーを返信しません。たとえば、フォーム認証を使用している場合は、IE10を使用してASP.Netサイトにログインできません。

細部

現在、レガシーウェブアプリの1つをIE 10に対してテストしています[プレビュー2]。

フォーム認証を使用してログインしようとしたときにSet-Cookie、ユーザーエージェントがIE 10のものである場合、応答にヘッダーがありません。空白の.Net 2および.Net 4サイトでこれを試しました。

信じられなかった/信じられなかったため、telnet通常のすべてのツールを使用した後、フォローHTTPリクエストを手動で実行し、同じ応答を得ました。

GET http://test.ourdomain.co.uk/ HTTP/1.1
Accept: */*
Host: test.ourdomain.co.uk
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Content-Length: 0

上記のHTTPリクエストはSet-Cookie、レスポンスでno を返します。しかし、単にユーザーエージェントを変更するだけMozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0)で機能します。

他の誰かがこれを複製できますか?非標準のURLパターンに影響する問題以外に、IE10 Cookieに関する既知の問題を見つけることができません。

修正プログラム

devioが元の回答を投稿した後、回避策を使用して、nullptrthisのホットフィックスが存在することを確認しました。

http://support.microsoft.com/kb/2600088

ホットフィックスは将来の参照に便利なので、メインの質問に修正プログラムを昇格しましたが、言及されたユーザーに賛成投票してください。


1
注-上記の例は、getリクエストに(Response.SetCookie()を使用して)cookieを設定したものです
isNaN1247

browserCapsを使用した別の可能な解決策:stackoverflow.com/a/13474958/1191905
Anton Skovorodko

ホットフィックスをIISまたはクライアントマシンに適用しますか?
アルカディアン

@ magic-c0d3rこれは.NET自体の修正プログラムなので、IISをホストするマシン(つまり、Webサーバー)に適用する必要があります
isNaN1247

3
.NET 2.0 / 3.5のホットフィックスも興味深いかもしれません:support.microsoft.com/kb/2600100
fortboise

回答:


66

MS Connectでこのエントリが見つかりました。動作は既知のバグです。

推奨される回避策(エントリから):

==回避策==

その間、それを機能させ、将来的に同様の問題を回避するために、次のファイル〜\ App_Browsers \ BrowserFile.browserを使用します。

<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>

7
ああ、それは少しバグです。IE10のリリースまでに、すべてのASP.Netサイトにパッチが適用されることは間違いありません。
isNaN1247

2
これをありがとう。アプリとの互換性テストを始めるのに役立ちました。最初はそれが私たちのアプリなのかベータなのかを知るのは困難でしたが、回避策を
講じる

これはIE10 / Win8では機能しますが、IE10 / Win7では機能しません。非常に奇妙な。
ScottE 2013年

1
これが私にとってうまくいかなかったので、一部の人にとってはうまくいったことに驚いています。より将来に備えて堅牢であると私が思う別のソリューションについては、以下のcookieless = "UseCookies"の回答を参照してください。
マイクネルソン2013

71

問題は、IE10がcookieを使用しないブラウザー(つまり、cookieをサポートできない)であると考える一部のIISインスタンスにあります。私たちの問題の場合、サーバーは認証Cookieを設定してブラウザーに送り返していましたが、その後の要求ではCookieを無視していました。

解決策は、IE10がCookieを実行できるようにブラウザー機能にパッチを適用するか(このページの別の回答で概説)、またはブラウザーがCookieを実行できないと考えている場合でも、Cookieを使用するようにデフォルトの動作を変更することです。

web.configのフォームセクションに以下を追加しました。

cookieless = "UseCookies"

<authentication mode="Forms">
  <forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" />
</authentication>

3
IE10に関する問題を修正した
Oleg Yevteyev 2013年

1
他の解決策を試し、修正プログラムがサーバーと互換性がないと言ってインストールを拒否した後、私はこれを試しました。それが問題を修正した唯一のものです。
Brian Surowiec、2013年

私がしなければならなかったすべては即時の結果を見るためにWeb.configを微調整することでした。ブラボー
2013

これが正解だと思います。クッキーが設定されていたので、フィドラーではすべてが正常に見え、ASP.NETはそれを完全に正常に読み取ることができました(テストページを設定したとき)が、フォーム認証はそれを無視していました。これはForms Authの深刻な制限ですが、修正により、通常のように機能します。
マイクネルソン2013

1
これは、IISにパッチを適用するよりもはるかに優れた、適切な解決策です。
generalnetworkerror 2013

33

この問題に対応する修正プログラムがあります[1]。

1)http://support.microsoft.com/kb/2600088
1)http://support.microsoft.com/kb/2600217(以前のKBを置き換えます)

また、[2]は、これが2012年1月にWindows Updateにヒットすることを示唆しています。

2)http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx


3
すばらしい、このおかげで-私は将来の参考のために質問の本文へのリンクを宣伝しました。
isNaN1247

2
確認。現在(2012年8月)の時点ではまだバグです。修正プログラムを試します。
エリックグエン

12
まだバグ04/2013-wtf?
Scott Selby 2013

KB Hotfixを更新したにもかかわらず、この問題はまだ発生しています。また、ブラウザーファイルをWeb csprojに追加しました。どちらも役に立たなかったようです。助けになったのは、「信頼済みサイト」ダイアログに「サイト」を追加したことです。これで、シングルサインオン時にマーケットプレイスアプリからIFrameからリダイレクトされます。私はこのリダイレクトを処理するためのより侵襲性の低い方法があると想定していますが、ドキュメントは問題に関して制限されているようです。
Paul Shriner、2013

3

助けてくれてありがとう。うまくいきませんでした。

  1. サイト からファイルをコピーしましたC:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers

  2. コマンドプロンプトで実行 C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i

  3. IISを再起動します。

  4. サイトをテストしましたが、エラーは発生しませんでした。

フィードバックをありがとう


2

nullptr回答の更新。

今日、Microsoft KB2600088をダウンロードしてみました。電子メールでリンクを受け取った後、それをクリックしてから、利用できなくなったというページを表示しました。

これを試してください:http : //support.microsoft.com/kb/2600217

そのリンクは、KB2600088とKB2628838の置き換えです。

MIcrosoft .Net Framework 4.5も利用可能になりました。


このアップデートを投稿していただきありがとうございます。このリンクsupport.microsoft.com/kb/2600088で問題が発生していました。主に、サーバーのIEでページが正しく表示されなかったためです。あなたの更新は私を大いに助けました。
Daniel Hollinrake 2013

0

誰もが言及しているさまざまなパッチをインストールしましたが、何らかの理由で問題は解決しませんでした。

.NET Framework 4.5 Fullをインストールし、問題は解消しました。

4.5をターゲットにするためにプロジェクトを更新する必要はありません。サーバーにインストールするだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.