2013-02-24 2 views
0

мне нужно программно получить User-Agent моего браузера: IE10 на окнах 7.Как программно получить реальный пользователь IE10 Агент

Это должно быть легкая работа. Я попытался navigator.userAgent в JavaScript и HtmlPage.BrowserInformation.UserAgent в Silverlight и оба из них возвращаются:

Mozilla/5.0 (совместимый; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0E; InfoPath.3; .NET4.0C)

, который выглядит красиво. Однако, как я заметил Скрипач, реальный UA IE10 посылает при просмотре веб-сайтов является:

Mozilla/5.0 (совместимый; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6,0)

, который это более короткая версия. Как я могу получить эту более короткую строку, используемую IE10?

(у меня Firefox 19 установлен и Firefox не имеет эту проблему, пользовательские агенты двух подходов одинаковы.)

Спасибо,

+1

Любые причины для того, чтобы пользовательский обнюхиватель userAgent вместо правильного обнаружения функции? –

+0

@ FabrícioMatté Это для целей безопасности. В основном мой клиент silverlight (с ClientHttp) должен отправить точно такую ​​же строку ua ​​на сервер apis. – Dodd

ответ

0

Других приложения имеет возможность изменить агент пользователя добавить информацию, которую вы видите выше, как вариант .NET CLR, Media Center, и т.д. ... http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

Скотт Hanselman был пост некоторое время назад, что часть этой информации поступает из реестра Windows http://www.hanselman.com/blog/TheNETFrameworkAndTheBrowsersUserAgentString.aspx

К тому времени, как вы дойдете до браузера, пользовательский агент будет обновлен, чтобы включить любую необходимую информацию, поэтому вы не сможете получить исходную чистую версию, к сожалению.

Как правило, вы хотите использовать обнаружение функции над браунированием, но, как вы уже упоминали, для этого есть соответствующие варианты использования. Я знаю, что это не отвечает на вопрос, как вы надеялись, но, надеюсь, это объясняет, что происходит.

-1

Из того, что я могу сказать, невозможно выполнить метод обнаружения объектов, чтобы получить установленные версии .NET Framework на клиенте. Строка userAgent является единственным способом, и это прерывается.

+0

Это, похоже, не отвечает на вопрос - похоже, не стоит пытаться получить версию .NET где угодно. – ajshort