以前のバージョンの Internet Explorer 10 で問題なく動作する ASP.NET アプリケーションがあります。
ただし、同じアプリケーションは Internet Explorer 10 では機能しません。
この問題を調査したところ、.asmx Web サービスの参照で 401-unauthorized エラーが発生することがわかりました。
問題のある IE10 のリクエストと IE9 の動作中のリクエストの唯一の違いは、User-Agent 文字列です。
違いをお見せしましょう:
以下のリクエストは、IE10 の問題のあるリクエストです。
GET http://abc.com/Services/ResourceService.asmx/jsdebug HTTP/1.1
Accept: application/javascript, */*;q=0.8
Referer: http://abc.com/def/ghi.aspx
Accept-Language: tr-TR
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Connection: Keep-Alive
DNT: 1
Host: sgmiis2:8090
Cookie: .ASPXANONYMOUS=XXXASP.NET_SessionId=YYY;ASPXAUTH=ZZZ;
それは得ています
401 - Unauthorized: 認証情報が無効なため、アクセスが拒否されました。
これは、IE10 より前の同じアプリケーションのリクエストです。
GET http://abc.com/Services/ResourceService.asmx/jsdebug HTTP/1.1
Accept: application/javascript, */*;q=0.8
Referer: http://abc.com/def/ghi.aspx
Accept-Language: tr-TR
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/6.0;)
Connection: Keep-Alive
DNT: 1
Host: sgmiis2:8090
Cookie: .ASPXANONYMOUS=XXXASP.NET_SessionId=YYY;ASPXAUTH=ZZZ;
しかし、このリクエストは機能しており、取得しています
HTTP/1.1 200 OK
ご覧のとおり、違いはユーザー エージェント ヘッダーの「MSIE 10.0」セクションと「MSIE 7.0/MSIE 8.0/MSIE 9.0」セクションだけです。
Fiddler の Composer セクションからリクエストを作成しています。したがって、実際に 401 エラーが発生するリスクはありません。(つまり、Cookieに問題があるということです)ユーザーエージェント文字列のみを変更した場合、HTTP 200の応答を正常に取得できるためです。
どうすれば問題を把握できますか?
ありがとう、
ファティ。