Лучшее решение для обнаружения браузера в ASP.NET 4.0

Я погуглил эту тему и наткнулся на три разных способа настройки возможностей браузера: browscap.ini, элемент browserCaps в web.config и файлы .browser в App_Browsers. Я думал, что файлы .browser - это последний способ, но, похоже, я не нашел обновленных файлов. Но я нашел совсем свежий browscap.ini с http://browsers.garykeith.com/downloads.asp.

Моя первоочередная задача — исключить обычные поисковые роботы из статистики посетителей. Вторым приоритетом является обнаружение браузера и ОС с правильными версиями (например, Opera 11/Win7).

Есть ли библиотеки, которые я мог бы использовать? Является ли browcap.ini по-прежнему действующим способом и можно ли его использовать без доступа к системным файлам? Где я могу найти актуальные файлы .browser?


person Mike Koder    schedule 04.03.2011    source источник
comment
browsers.garykeith.com/downloads.asp не найден   -  person Kiquenet    schedule 27.10.2017


Ответы (5)


дополнительная информация: http://msdn.microsoft.com/en-us/library/3yekbd5b.aspx Вы проверили это:

    System.Web.HttpBrowserCapabilities browser = Request.Browser;
    string s = "Browser Capabilities\n"
        + "Type = "                    + browser.Type + "\n"
        + "Name = "                    + browser.Browser + "\n"
        + "Version = "                 + browser.Version + "\n"
        + "Major Version = "           + browser.MajorVersion + "\n"
        + "Minor Version = "           + browser.MinorVersion + "\n"
        + "Platform = "                + browser.Platform + "\n"
        + "Is Beta = "                 + browser.Beta + "\n"
        + "Is Crawler = "              + browser.Crawler + "\n"
        + "Is AOL = "                  + browser.AOL + "\n"
        + "Is Win16 = "                + browser.Win16 + "\n"
        + "Is Win32 = "                + browser.Win32 + "\n"
        + "Supports Frames = "         + browser.Frames + "\n"
        + "Supports Tables = "         + browser.Tables + "\n"
        + "Supports Cookies = "        + browser.Cookies + "\n"
        + "Supports VBScript = "       + browser.VBScript + "\n"
        + "Supports JavaScript = "     + 
            browser.EcmaScriptVersion.ToString() + "\n"
        + "Supports Java Applets = "   + browser.JavaApplets + "\n"
        + "Supports ActiveX Controls = " + browser.ActiveXControls 
              + "\n"
        + "Supports JavaScript Version = " +
            browser["JavaScriptVersion"] + "\n";

    TextBox1.Text = s;
person Pranay Rana    schedule 04.03.2011
comment
Я использую Request.Browser для получения информации о браузере, но мне нужны актуальные файлы конфигурации. Это дает мне Opera 9.80/WinNT, когда я тестирую с Opera 11/Win7. - person Mike Koder; 04.03.2011

Я нашел синтаксический анализатор пользовательского агента на http://user-agent-string.info/, и он кажется достаточно хорошим для мои цели.

person Mike Koder    schedule 14.04.2011

Просто чтобы никто больше не пошел по этому темному пути, имейте в виду, что даже команда jQuery рекомендует вам НЕ использовать объект jQuery.browser:

"Свойство $.browser устарело в jQuery 1.3"

person Jral    schedule 19.03.2011

Лучший ответ — определение функций, а не определение браузера! Это особенно актуально в тот день, когда Firefox и Chrome выпускают релизы каждые несколько месяцев, а использование мобильных браузеров растет. Используйте Modernizr (http://Modernizr.com) или аналогичную библиотеку для обнаружения интересующих вас функций.

person Steve Albers    schedule 23.08.2011
comment
Мне не нужно знать, поддерживает ли браузер последние трюки css или html5. Я пишу о программировании на C#/.net, и целевая аудитория, скорее всего, будет иметь Windows и новейший браузер. Мне любопытно узнать, что интересовало остальных. - person Mike Koder; 24.08.2011
comment
Пока существуют ошибки браузера, я хочу знать, какой браузер используют люди. Если клиент звонит или пишет мне по электронной почте, чтобы сказать, что страница выглядит неработающей, я хочу узнать об их браузере, чтобы узнать, смогу ли я повторить это. Я бы предпочел заранее определить и зарегистрировать версию их браузера, чем пытаться получить эту информацию от них по телефону. - person Chris; 19.02.2016

До сих пор я использовал http://api.jquery.com/jQuery.browser/ для обнаружения на стороне клиента.

person citronas    schedule 04.03.2011
comment
Не рекомендуется использовать это. Это из официальных документов jQuery: мы не рекомендуем использовать это свойство; попробуйте вместо этого использовать обнаружение функций (см. jQuery.support). jQuery.browser может быть перемещен в плагин в будущем выпуске jQuery. - person Jonathan; 24.03.2011
comment
Действительно, он устарел в версии 1.3 и полностью удален в версии 1.9. - person T.J. Crowder; 07.07.2014