IE9 игнорирует X-UA-совместимый флаг для UserAgent

У меня есть интернет-приложение, поэтому IE9 по умолчанию в представлении совместимости. Я использую X-UA-Compatible флаг. Я отправил его в заголовке HTTP и как метатег. IE9, кажется, принимает это и использует движок рендеринга IE9. Но все равно всегда отправляется строка UserAgent IE-7.

Есть ли способ избежать этого или идентифицировать этот IE9 как не браузер IE7?

Я действительно не хочу использовать белый список браузеров, но черный список неподдерживаемых браузеров (IE 5, 6, 7 и 8).

Мой пример:

Я открываю страницу, поэтому IE9 отправляет запрос GET:

GET http://myserver/mypage/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg,     application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: de-CH
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myserver
Cookie: MAKEBROWSERTEST=true

Затем мой сервер отвечает:

HTTP/1.1 302 Found
Cache-Control: private, no-cache="Set-Cookie"
Content-Type: text/html; charset=utf-8
Location: /myserver/mypage/two
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
Set-Cookie: MAKEBROWSERTEST=true; path=/
X-UA-Compatible: IE=edge
Date: Tue, 11 Sep 2012 10:04:21 GMT
Content-Length: 152

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/myserver/mypage/two">here</a>.</h2>
</body></html>

IE9 перенаправляет, но все еще отправляет агент пользователя MSIE 7.0:

GET http://myserver/mypage/two HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: de-CH
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myserver
Cookie: MAKEBROWSERTEST=true

Спасибо

1 ответ

Я не пытаюсь восстановить старый поток, но если кто-то сталкивается с этим, они могут найти это интересным: множество строк User-Agent в Internet Explorer 11

Если пользователь выбирает визуализацию сайта в представлении совместимости (выберите "Инструменты"> "Параметры представления совместимости"), то IE отправит строку "пользователь-агент", которая имитирует строку UA обозревателя Internet Explorer 7:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)

По умолчанию сайты в зоне интрасети отображаются в представлении совместимости, поэтому они увидят строку User-Agent.

Итак, я сделал тест с IE9:

В (нормальном режиме) вы получаете

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

В режиме совместимости вы получаете

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Другие вопросы по тегам