ASP.NET: непоследовательное обнаружение браузера Chrome - PullRequest
0 голосов
/ 15 апреля 2011

Я тестирую приложение ASP.NET 3.5 на 2 компьютерах: одно - Windows 7 x64, а другое - Windows Server 2008 x64.

Когда я использую один и тот же экземпляр Chrome для открытия веб-сайтов на этих 2 машинах, я получаю разные результаты на HttpBrowserCapabilities.Browser: на машине с Windows 7 я получаю browser.Name = "appleMac-safari", тогда как на машине с Windows Server я получаю browser.Name = "applewebkit" .

Обе машины имеют идентичные (AFAIK) установки приложения asp.net, одинаковые файлы machine.config, а файлы *.browser также идентичны на C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Browsers

Есть идеи, почему происходит это расхождение?

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

Используйте следующее для обнаружения Chrome, так как он более надежен

if (Request.UserAgent.Contains("Chrome"))
{
    ....
}

Где значение UserAgent:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
0 голосов
/ 15 апреля 2011

Я бы посмотрел на строку пользовательского агента, которую посылает браузер. Скорее всего, строка пользовательского агента не совпадает в этой версии chrome на этих двух платформах.Есть много небольших различий.

Кроме того, я хотел бы добавить, что в большинстве случаев анализ кода браузером на стороне сервера имеет очень ограниченное применение, поскольку, как вы видели, он не особенно надежен и может быть легко подделан,Если вы хотите по-другому оформить вещи или настроить поведение на стороне клиента, используйте пакет javascript, такой как Modernizr , для определения функций - гораздо более надежный способ.

...