Поделиться через


Схема файла определения веб-обозревателя (элемент browsers)

Файлы определений обозревателя содержат определения для отдельных обозревателей. Во время работы для определения типа обозревателя, который отправил запрос, в ASP.NET используются сведения из заголовка запроса. Затем ASP.NET использует файлы с расширением BROWSER, чтобы определить возможности браузера. Адаптеры элементов управления ASP.NET могут использовать эти сведения для адаптации поведения серверного веб-элемента управления ASP.NET в зависимости от типа устройства. Например серверный элемент управления может создать разный HTML-код для графического браузера, такого как Internet Explorer, в отличие от мобильного устройства.

ПримечаниеПримечание

Файлы определения обозревателя появились в .NET Framework версии 2.0. В более ранних версиях .NET Framework для определения настроек обозревателя в файле конфигурации использовался элемент browserCaps.

<browsers>
    <browser id="browser name"
             parentID="parent browser name"
             refID="reference ID">
        <identification>
            <userAgent match="regular expression"
                       nonMatch="regular expression" />
            <header match="regular expression"
                    name="header name"
                    nonMatch="regular expression" />
            <capability match="regular expression"
                        name="capability name"
                        nonMatch="regular expression" />
        </identification>
        <capture>
            <userAgent match="regular expression" />
            <header match="regular expression"
                    name="header name" />
            <capability match="regular expression"
                        name="capability name" />
        </capture>
        <capabilities>
            <capability name="capability name"
                        value="capability value" />
        </capabilities>
        <controlAdapters markupTextWriterType="type name">
            <adapter adapterType="name of adapter class"
                     controlType="name of control class" />
        </controlAdapters>
        <sampleHeaders>
            <header name="header name"
                    value="header value" />
        </sampleHeaders>
    </browser>
    <gateway id="gateway ID"
             parentID="parent browser ID">
        <!-- Same child elements as for <browser>.
        <identification></identification>
        <capture></capture>
        <capabilities></capabilities>
        <controlAdapters></controlAdapters>
        <sampleHeaders></sampleHeaders>
         -->
    </gateway>
    <defaultBrowser id="Default" 
                    parentID="parent browser ID"
                    refID="reference ID" >
        <!-- Same child elements as for <browser>.
        <identification></identification>
        <capture></capture>
        <capabilities></capabilities>
        <controlAdapters></controlAdapters>
        <sampleHeaders></sampleHeaders>
         -->
    </defaultBrowser>
</browsers>

Атрибуты и элементы

Элемент

Описание

adapter

Определяет сопоставление между серверным веб-элементом управления ASP.NET и адаптером, который осуществляет его отображение в используемом обозревателе. Например, в следующем определении для обозревателя NokiaMobileBrowserRainbow из файла обозревателя Nokia указывается, что серверные элементы управления Menu будут адаптироваться к обозревателю при помощи класса адаптера элемента управления MenuAdapter :

    <controlAdapters markupTextWriterType="System.Web.UI.XhtmlTextWriter" >
        <adapter
          controlType="System.Web.UI.WebControls.Menu"
          adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter">
        </adapter>
    </controlAdapters>

В следующей таблице описаны необходимые атрибуты, которые содержатся в элементе adapter.

АтрибутОписание
adapterType Обязательный атрибут элемента String.Задает имя класса, который используется для изменения способа, которым элемент управления адаптируется к обозревателю.
controlType Обязательный атрибут элемента String.Определяет имя элемента управления для сопоставления с адаптером.

Элемент adapter не содержит дочерних элементов.

browser

Задает определение отдельного обозревателя

В следующей таблице описаны атрибуты, которые может содержать элемент browser .

ПримечаниеПримечание
Не изменяйте файлы определений обозревателя, которые поставляются с ASP.NET, потому что при установке пакетов исправлений эти файлы могут обновляться, что приводит к потере изменений.Вместо этого создайте новые файлы с расширением BROWSER и используйте атрибут parentID в новом определении обозревателя для наследования параметров или используйте атрибут refID для добавления возможностей в существующее определение обозревателя.

В определении обозревателя должен определяться либо атрибут refID, либо оба атрибута id и parentID .

АтрибутОписание
id Атрибут типа String, обязателен, если используется атрибут parentID.Задает уникальное имя обозревателя, для которого создается определение.
parentID Атрибут типа String, обязателен, если используется атрибут id.Задает уникальное имя определения родительского обозревателя, от которого наследуются параметры.Эти параметры могут быть заменены в определении текущего обозревателя.Определение родительского обозревателя не обязательно должно присутствовать в том же файле определения обозревателя, но оно должно быть задано в том же приложении или в каталоге %SystemRoot%\Microsoft.NET\Framework\версия\CONFIG\Browsers.Например, следующее определение обозревателя WebTV задано в файле WebTV.browser.Определение родительского обозревателя IE2 задано в файле IE.browser в том же каталоге. <browser id=" WebTV " parentID=" IE2 ">
refID
Атрибут типа String, нельзя использовать, если используются атрибуты id и parentID .Определяет действующий идентификатор определения обозревателя.Атрибут refID используется для связи новых возможностей с существующим определением обозревателя.Обращение к одному refID можно задать в нескольких узлах обозревателей.Если указан атрибут refID, то элемент browser не может содержать дочерний элемент identification.Атрибут refID не заменяет целевой элемент. Его параметры применяются после применения всех остальных параметров.Изменения применяются в следующем порядке:
  • все узлы <gateway parentID>;

  • все узлы <gateway refID>;

  • все узлы <browser parentID>;

  • все узлы <browser refID>.

В следующем примере определения к существующему определению обозревателя IE, которое содержится в файле IE.browser, добавляются новые возможности.
<browser refID="IE">
    <capabilities>
        <capability name="UseRichTextBox" value="true" />
    </capabilities>
    <controlAdapters>
        <adapter controlType="System.Web.UI.Calendar"
adapterType="ExampleAdapters.ExampleIECalendarAdapter"
        />
    </controlAdapters>
</browser>

Элемент browser может содержать один из следующих дочерних элементов или не содержать ни одного.

  • capabilities

  • capture

  • controlAdapters

  • identification

  • sampleHeaders

browsers

Представляет обязательный корневой элемент файла с расширением BROWSER.

capabilities

Определяют возможные значения, которые можно задать для текущего определения обозревателя. Список строго типизированных возможностей обозревателя см. в свойствах класса HttpCapabilitiesBase.) Для большинства этих свойств в файлах определения обозревателя используется стиль Camel. Также можно добавлять собственные возможности.

Элемент capabilities не содержит атрибутов.

Элемент capabilities может содержат любое количество следующих дочерних элементов или не содержать их:

  • capability

дочерний элемент capability от capabilities.

Определяет одно значение возможности, которое можно задать в текущем определении обозревателя. Например, в определении обозревателя IE в файле IE.browser заданы следующие возможности. В этом примере определения наследуются другие свойства из определения обозревателя Mozilla в файле Mozilla.browser . Значения, содержащие текст со знаком доллара с фигурными скобками (${}), заменяются захваченными значениями из соответствующего выражения для дочернего элемента userAgent элемента identification "^Mozilla[^(]*\([C|c]ompatible;\s*MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'[^)]*)".

    <capabilities>
        <capability name="browser"          value="IE" />
        <capability name="extra"            value="${extra}" />
        <capability name="isColor"          value="true" />
        <capability name="letters"          value="${letters}" />
        <capability name="majorversion"     value="${major}" />
        <capability name="minorversion"     value="${minor}" />
        <capability name="screenBitDepth"   value="8" />
        <capability name="type"             value="IE${major}" />
        <capability name="version"          value="${version}" />
    </capabilities>

Элемент capability содержит следующие обязательные атрибуты.

АтрибутОписание
name Обязательный атрибут элемента String.Задает имя возможности.Список строго типизированных возможностей обозревателя см. в свойствах класса HttpCapabilitiesBase.)Для большинства этих свойств в файлах определения обозревателя используется стиль Camel, например canSendMail вместо CanSendMail .Также можно добавлять собственные возможности.
value Обязательный атрибут элемента String.Задает значение возможности.Возможные значения для всех строго типизированных возможностей обозревателя представлены в свойствах класса HttpCapabilitiesBase.Значение атрибута может содержать захваченные переменные внутри "${}"

Элемент capability не содержит дочерних элементов.

capability (дочерний элемент identification.или.capture)

Указывает, что значение возможности из класса родительского обозревателя будет сопоставляться с регулярным выражением. Например, в следующем определении для обозревателя IE5to9 из файла IE.browser элемент capability используется для определения того, что значение возможности majorversion родительского определения IE должно соответствовать включенному регулярному выражению, чтобы это определение обозревателя соответствовало обозревателю клиента. В этом примере определение обозревателя содержит элементы capability которые добавляют или заменяют элементы в родительском определении.

    <browser id="IE5to9" parentID="IE">
        <identification>
            <capability name="majorversion" match="^[5-9]" />
        </identification>
        <!-- Capability elements. -->
    </browser>

В следующей таблице описаны атрибуты, которые содержит элемент capability . Обязательно должен быть задан один из атрибутов, match или nonMatch, но не оба одновременно.

АтрибутОписание
match Атрибут типа String, нельзя использовать в одном элементе с атрибутом nonMatch.Определяет регулярное выражение, которому должен соответствовать параметр родительской возможности для успешного сопоставления.Сведения о регулярных выражениях см. в разделе Регулярные выражения в .NET Framework.
name Обязательный атрибут элемента String.Задает имя родительской возможности.
nonMatch Атрибут типа String, нельзя использовать в одном элементе с атрибутом match.Этот атрибут не используется в дочернем элементе capability элемента capture .Определяет регулярное выражение, которому не должен соответствовать параметр родительской возможности для успешного сопоставления.

Элемент capability не содержит дочерних элементов.

capture

Определяет, какие дополнительные элементы header, userAgent или capability будут использоваться для получения сведений о веб-обозревателе . Это удобно для определения новых веб-обозревателей, которые появились после выхода .NET Framework 2.0 . Для захвата значений определение обозревателя может включать шаблоны регулярных выражений в атрибуте match любого элемента, используемого для идентификации. Например, в следующем элементе userAgent, который определен в файле IE.browser, задается соответствие для высоты экрана в точках, указанной в заголовке запроса агента пользователя.

    <capture>
        <userAgent match="PalmSource; Blazer 3\.0\)\s\d+;(?'screenPixelsHeight'\d+)x(?'screenPixelsWidth'\d+)$" />
    </capture>

В определении обозревателя может потребоваться захватить некоторые дополнительные данные из заголовков запросов, которые не используются для различения классов обозревателей. Например, в следующем элементе capture захватывается число программируемых клавиш для сотового телефона OpenWave . Программируемые клавиши позволяют отображать меню и команды при нажатии соответствующих аппаратных кнопок на смартфонах с Windows Mobile.

    <capture>
        <header name="HTTP_X_UP_DEVCAP_NUMSOFTKEYS" 
                match="(?'softkeys'\d+)" />
    </capture>

Элемент capture не содержит атрибутов.

Элемент capture может содержат любое количество следующих дочерних элементов или не содержать их:

  • header

  • userAgent

  • capability

controlAdapters

Определяет адаптер элемента управления, который следует использовать для адаптации серверного элемента управления к обозревателю.

В следующей таблице описан атрибут, который содержится в элементе controlAdapters .

АтрибутОписание
markupTextWriterType Необязательный атрибут элемента String.Определяет тип .NET Framework для используемого редактора разметки.Значение по умолчанию System.Web.UI.XhtmlTextWriter, другие возможные значения этого атрибута — System.Web.UI.Html32TextWriter, System.Web.UI.HtmlTextWriter, System.Web.UI.ChtmlTextWriter или любой пользовательский класс, производный от одного из этих классов .

Элемент controlAdapters может содержат любое количество следующих дочерних элементов или не содержать их:

  • adapter

defaultBrowser

Определяет возможности обозревателя по умолчанию в файле Default.browser. Определения обозревателя по умолчанию не соответствуют какому-либо определенному обозревателю, но используются другими определениями для наследования параметров. Например, в файле Default.browser содержится следующее определение обозревателя Default.

    <defaultBrowser id="Default">
        <capabilities>
            <capability name="ecmascriptversion"   value="0.0" />
            <capability name="javascript"          value="false" />
            <capability name="jscriptversion"      value="0.0" />
        </capabilities>
    </defaultBrowser>

Определение обозревателя по умолчанию наследуется многими другими определениями. Например, в файле Panasonic.browser содержится следующее определение обозревателя Panasonic.

<browser id="Panasonic" parentID="Default">

В следующей таблице описан атрибут, который содержится в элементе defaultBrowser .

АтрибутОписание
id Обязательный атрибут элемента String.Задает уникальное имя обозревателя.

Элемент defaultBrowser может содержать такие же дочерние элементы, что и элемент browser .

gateway

Задает определение для одного шлюза. Некоторые мобильные обозреватели подключаются к веб-серверу через шлюз, который может добавлять собственные возможности. На один атрибут refID могут ссылаться несколько элементов с определением шлюза.

Элемент gateway может содержать такие же атрибуты и дочерние элементы, что и элемент browser. Например, в файле IE.browser содержится следующее определение шлюза IE3AK.

    <gateway id="IE3AK" parentID="IE3">
        <identification>
            <capability name="extra" match="; AK;" />
        </identification>
        <capture>
        </capture>
        <capabilities>
            <capability name="ak"  value="true" />
        </capabilities>
    </gateway>
ПримечаниеПримечание
Нельзя использовать в приложении файл определения обозревателя, в котором содержится элемент browser, атрибут parentID которого ссылается на элемент gateway в файлах определений по умолчанию, расположенных в каталоге %SystemRoot\Microsoft.NET\Framework\номер_версии\CONFIG\Browsers .Однако атрибут parentID может ссылаться на другой файл определения обозревателя в той же папке App_Browsers .

header (дочерний элемент identification.или.capture)

Определяет выражение, с которым будет сопоставляться или по которому будет выполняться захват для определенного заголовка HTTP в запросе. Например, в следующем определении обозревателя Wml из файла Default.browser соответствующий обозреватель определяется путем сравнения заголовка Accept с двумя регулярными выражениями.

<identification>
    <header name="Accept" 
            match="text/vnd\.wap\.wml|text/hdml" />
    <header name="Accept" 
            nonMatch="application/xhtml\+xml; profile|application/vnd\.wap\.xhtml\+xml" />
</identification>

В следующей таблице описаны атрибуты, которые содержатся в элементе header . Должен присутствовать один из атрибутов, match или nonMatch, но не оба одновременно.

АтрибутОписание
match Атрибут типа String, нельзя использовать в одном элементе с атрибутом nonMatch.Определяет регулярное выражение, которому должен соответствовать заголовок запроса для успешной идентификации.Сведения о регулярных выражениях см. в разделе Регулярные выражения в .NET Framework.
name Обязательный атрибут элемента String.Задает имя заголовка.
nonMatch Атрибут типа String, нельзя использовать в одном элементе с атрибутом match.Этот атрибут не используется в дочернем элементе capability элемента capture .Определяет регулярное выражение, которому не должен соответствовать заголовок запроса для успешной идентификации.

Элемент header не содержит дочерних элементов.

header (дочерний элемент sampleHeaders)

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

В следующей таблице описаны атрибуты, которые содержатся в элементе header .

АтрибутОписание
name Необязательный атрибут элемента String.Задает имя заголовка.
value Необязательный атрибут элемента String.Задает значение заголовка.

Элемент header не содержит дочерних элементов.

identification

Задает сведения о том, как идентифицировать этот обозреватель по входящему запросу.

Элемент identification не содержит атрибутов.

Элемент identification может содержать один или несколько следующих дочерних элементов:

  • header

  • userAgent

  • capability

sampleHeaders

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

Элемент sampleHeaders не содержит атрибутов.

Элемент sampleHeaders может содержат любое количество следующих дочерних элементов или не содержать их:

  • header

userAgent

Определяет выражение, с которым будет сопоставляться заголовок агента пользователя в запросе. Например, в следующем определении обозревателя IE4 из файла IE.browser для идентификации обозревателя по заголовку агента пользователя, который отправляется вместе с запросом используется строка "MSIE 4".

        <identification>
            <userAgent match="MSIE 4" />
        </identification>

В следующей таблице описаны атрибуты, которые содержатся в элементе userAgent . Должен присутствовать один из атрибутов, match или nonMatch, но не оба одновременно.

АтрибутОписание
match Атрибут типа String, нельзя использовать в одном элементе с атрибутом nonMatch.Определяет регулярное выражение, которому должен соответствовать агент пользователя для успешной идентификации.Сведения о регулярных выражениях см. в разделе Регулярные выражения в .NET Framework.
nonMatch Атрибут типа String, нельзя использовать в одном элементе с атрибутом match.Определяет регулярное выражение, которому не должен соответствовать агент пользователя для успешной идентификации.Этот атрибут не используется в дочернем элементе capability элемента capture .

Элемент userAgent не содержит дочерних элементов.

Заметки

Если оказалось, что ни одно из существующих определений обозревателя не соответствует имеющимся критериям, то можно создать новый файл определения обозревателя с помощью кода раздела Пример ниже

Примечание о безопасностиПримечание по безопасности

Не следует загружать или устанавливать файлы определений обозревателей из сомнительных источников, если нет уверенности относительно их надежности.Рекомендуется проверить, имеются ли в новом файле определения обозревателя ссылки на неизвестные пространства имен.Дополнительные сведения см. в разделе Защита файлов описания браузеров.

Стандартные файлы определений обозревателей находятся в каталоге %SystemRoot%\Microsoft.NET\Framework\версия\CONFIG\Browsers Файлы определений обозревателей уровня приложения можно разместить в каталоге App_Browsers приложения. В обоих расположениях файлы определений обозревателей должны иметь расширение BROWSER. Не изменяйте файлы определений обозревателя, которые поставляются с ASP.NET, потому что при установке пакетов исправлений эти файлы могут обновляться, что приводит к потере изменений. Вместо этого создайте новые файлы с расширением BROWSER и используйте атрибут parentID в новом определении browser для наследования параметров или используйте атрибут refID для добавления возможностей в существующее определение обозревателя.

Во время выполнения данные из файла определения обозревателя добавляются в коллекцию известных обозревателей в объекте BrowserCapabilitiesFactory . При запросе, ASP.NET определяет обращающийся обозреватель по заголовку запроса и создает объект HttpBrowserCapabilities, который соответствует типу запрошенного обозревателя. Для этого создается пустой словарь и над деревом определения обозревателя рекурсивно выполняются следующие действия:

  1. Берется определение обозревателя по умолчанию, сопоставление с которым всегда считается успешным.

  2. Значения возможностей, указанные в этом определении обозревателя, добавляются в словарь возможностей для этого обозревателя. Значения из определения обозревателя заменяют значения, заданные в родительском обозревателе.

  3. Каждое определение дочернего обозревателя определяется на соответствие. Для каждого соответствующего дочернего обозревателя снова выполняются действия с пункта 1. Определения обозревателей поверяются после определений шлюзов. Если агент пользователя соответствует нескольким определениям обозревателей или нескольким определениям шлюзов, то во время выполнения создается исключение.

Объект HttpBrowserCapabilities помещается в кэш и может использоваться для других запросов от обозревателей того же типа.

Веб-приложение может обращаться к текущему экземпляру объекта HttpBrowserCapabilities через свойство HttpRequest.Browser. Этот объект предназначен только для чтения и содержит свойства для каждой возможности. Иначе, веб-разработчик может создать пользовательский класс, который наследуется от класса HttpBrowserCapabilities, и хранить экземпляр в свойстве HttpRequest.Browser .

При изменении файлов с расширением BROWSER, расположенных в каталоге App_Browsers, кэш становится недействительным, и при следующем запросе приложение будет перекомпилировано. Однако при изменении файлов с расширением BROWSER в каталоге %SystemRoot%\Microsoft.NET\Framework\версия\CONFIG\Browsers необходимо перекомпилировать вручную приложение с помощью средства %SystemRoot%\Microsoft.NET\Framework\версия\aspnet_regbrowsers.exe или перекомпилировать его программным способом с помощью класса BrowserCapabilitiesCodeGenerator .

ПримечаниеПримечание

Использование элемента browserCaps из файла Web.config для определения обозревателей в .NET Framework версии 2.0 считается устаревшим, но пока поддерживается.Данные из этого элемента объединяются с данными из файлов определения обозревателя.

Когда обозреватель отправляет запрос к приложению, возможности обозревателя сохраняются в свойстве Browser. Идентификатор обозревателя сохраняется в свойстве UserAgent. Для серверных веб-элементов управления ASP.NET выполняется запрос к списку возможностей, чтобы определить, как следует адаптировать поведение элементов управления для разных обозревателей.

Возможности

Список строго типизированных возможностей обозревателя см. в свойствах класса HttpCapabilitiesBase.) Для большинства этих свойств в файлах определения обозревателя используется стиль Camel. Например, если в файле определения обозревателя требуется определить возможность BackgroundSounds, то укажите ее в виде backgroundSounds.

Также можно определять собственные возможности.

Веб-приложения могут извлекать значения возможностей из объекта HttpBrowserCapabilities одним из следующих двух способов:

  • При помощи обращения к словарю возможностей. Этот метод можно использовать для пользовательских возможностей.

    Например, чтобы получить значение возможности ECMAScript (JavaScript) для текущего обозревателя клиента, можно использовать следующий код:

    String cap_javascript = Request.Browser["javascript"];
    
  • При помощи вызова строго типизированного свойства-оболочки для возможности.

    Например, чтобы получить значение возможности ECMAScript для текущего обозревателя клиента, можно использовать следующий код:

    String cap_javascript = Request.JavaScript;
    

Параметры по умолчанию

Вместе с .NET Framework в каталоге %SystemRoot%\Microsoft.NET\Framework\версия\CONFIG\Browsers поставляются стандартные файлы определений обозревателей. В каталоге App_Browsers своего приложения можно создавать файлы определений обозревателей уровня приложения. Сведения о специальных каталогах ASP.NET см. в разделе Структура папок веб-проектов ASP.NET..

Следующий пример кода представляет собой фрагмент файла Generic.browser из каталога %SystemRoot%\Microsoft.NET\Framework\версия\CONFIG\Browsers.

ПримечаниеПримечание

Не следует изменять файлы определений обозревателей из каталога %SystemRoot%\Microsoft.NET\Framework\версия\CONFIG\Browsers.Они управляются платформой .NET Framework.

<browsers>
    <browser id="GenericDownlevel" parentID="Default">
        <identification>
            <userAgent match="^Generic Downlevel$" />
        </identification>
        <capture>
        </capture>
        <capabilities>
            <capability name="cookies"
                        value="false" />
            <capability name="ecmascriptversion" 
                        value="1.0" />
            <capability name="tables"
                        value="true" />
            <capability name="type"
                       value="Downlevel" />
        </capabilities>
        <controlAdapters>
        <adapter controlType="System.Web.UI.WebControls.Menu"
                     adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" />
        </controlAdapters>
    </browser>
    <browser id="Mozilla" parentID="Default">
        <identification>
            <userAgent match="Mozilla" />
        </identification>
        <capture>
        </capture>
        <capabilities>
            <capability name="browser"
                        value="Mozilla" />
            <capability name="cookies"
                        value="false" />
            <capability name="inputType"
                        value="keyboard" />
            <capability name="isColor"
                        value="true" />
            <capability name="isMobileDevice"
                        value="false" />
            <capability name="maximumRenderedPageSize"
                        value="300000" />
            <capability name="screenBitDepth"
                        value="8" />
            <capability name="supportsBold"
                        value="true" />
            <capability name="supportsCss"
                        value="true" />
            <capability name="supportsDivNoWrap"
                        value="true" />
            <capability name="supportsFontName"
                        value="true" />
            <capability name="supportsFontSize"
                        value="true" />
            <capability name="supportsImageSubmit"
                        value="true" />
            <capability name="supportsItalic"
                        value="true" />
            <capability name="type"
                        value="Mozilla" />
        </capabilities>
    </browser>
</browsers>

Пример

Следующий пример кода является пустым файлом BROWSER, который можно использовать в качестве шаблона. Следует соблюдать осторожность, чтобы не создавать циклических ссылок в своих файлах обозревателей.

<?xml version="1.0" encoding="utf-8"?>

<browsers>
    <browser id="NewBrowser" parentID="Mozilla">
        <identification>
            <userAgent match="Unique User Agent Regular Expression" />
        </identification>

        <capture>
            <userAgent match="NewBrowser (?'version'\d+\.\d+)" />
        </capture>

        <capabilities>
            <capability name="browser" value="My New Browser" />
            <capability name="version" value="${version}" />
        </capabilities>
    </browser>

    <browser refID="Mozilla">
        <capabilities>
            <capability name="xml" value="true" />
        </capabilities>
    </browser>
</browsers>

Сведения об элементе

Обработчик раздела конфигурации

System.Web.Configuration.HttpCapabilitiesSectionHandler

Элементы конфигурации

HttpRequest.Browser

HttpCapabilitiesBase.Browsers

HttpCapabilitiesBase.Capabilities

System.Web.HttpBrowserCapabilities

Настраиваемые расположения

Каталог Browsers корневого уровня для компьютера

Каталог App_Browsers уровня приложения.

Требования

Microsoft IIS версии 5.0 или более поздней

Платформа .NET Framework версии 2.0 или более поздней версии

Visual Studio 2005 или более поздней версии

См. также

Задачи

Практическое руководство. Определение типов и возможностей браузеров на веб-страницах ASP.NET

Ссылки

Browsers

Capabilities

HttpCapabilitiesSectionHandler

HttpBrowserCapabilities

Элемент deviceFilters (схема параметров ASP.NET)

Элемент mobileControls (схема параметров ASP.NET)

Элемент browserCaps (схема параметров ASP.NET)

Основные понятия

Серверные веб-элементы управления ASP.NET и возможности обозревателей

Защита файлов описания браузеров

Сценарии конфигурации ASP.NET

Общие сведения о фильтрации устройств в ASP.NET

Общие сведения об архитектуре адаптивной функции элемента управления

Другие ресурсы

ASP.NET for Mobiles : The Official Microsoft ASP.NET Site

Общие параметры конфигурации (ASP.NET)

Параметры конфигурации ASP.NET