Конфигурирование и настройка Microsoft ASP.NET



Элементы, входящие в раздел <browserCaps> - часть 3


Если совпадений не найдено, элемент <filter> завершается без добавления в класс пары имя/значение, и начинается обработка следующего элемента <filter>.

В этом процессе обработчик раздела проходит по разделу <browserCaps> фильтр за фильтром и case за case до тех пор, пока класс возможностей браузера не заполнится парами имя/значение, которые описывают браузер или устройство, используемое для доступа к ресурсу. Чтобы лучше это себе представить, давайте посмотрим на более сложный элемент <filter>, взятый непосредственно из файла machine.config.

<use var="HTTP_VIA" as="via"/> <filter> <case match="Nokia" with="%{via}"> <filter> <case with="%{via}" match= "(?’nokiaVersion’Nokia\D*(?'gatewayMajorVersion'\d+) (?’gatewayMinorVersion'\.\d+)[^,]*)"> gatewayVersion = ${nokiaVersion} gatewayMajorVersion = ${gatewayMajorVersion} gatewayMinorVersion = ${gatewayMinorVersion} </case> </filter> </case> </filter>

Это один из наиболее сложных элементов <filter>, чье назначение состоит в определении того, является устройство, получающее доступ, устройством Nokia. Если это устройство Nokia, элемент <filter> извлекает из серверной переменной gatewayVersion, gatewayMajorVersion и gatewayMinorVersion. Эта информация добавляется в класс возможностей браузера и используется при создании HTML для отправки в браузер. Есть пара соглашений, используемых в этом операторе <filter>, которые не использовались в предыдущих операторах <filter> (большинство из них работает с регулярными выражениями). Я опишу каждое из них при рассмотрении оператора <filter>. Первый элемент в этом примере – это элемент <use>.

<use var="HTTP_VIA" as="via"/>

Этот элемент делает серверную переменную HTTP_VIA доступной для элементов <filter> как переменную via. Элемент <use> необходим, так как информация, которую вы ищете, содержится не в серверной переменной по умолчанию HTTP_USER_AGENT, а в переменной HTTP_VIA.


Содержание  Назад  Вперед