Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

Дополнительная информация: 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;

Ответ 3

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

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

Ответ 4

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