Partager via


Schéma du fichier de définition de navigateur (élément browsers)

Mise à jour : novembre 2007

Les fichiers de définition de navigateur contiennent des définitions pour les navigateurs individuels. Au moment de l'exécution, ASP.NET utilise les informations de l'en-tête de demande pour déterminer le type de navigateur qui a fait la requête. Ensuite, ASP.NET utilise des fichiers browser pour déterminer quelles sont les fonctions du navigateur et comment restituer le balisage sur ce navigateur. Cela est utile aux développeurs de site Web qui souhaitent créer des applications qui peuvent être affichées sur des appareils mobiles, en utilisant des adaptateurs de contrôle qui adaptent le comportement d'un contrôle serveur Web ASP.NET en fonction du type d'appareil. Pour plus d'informations, consultez les liens de la section Voir aussi.

Remarque :

Les fichiers de définition de navigateur ont été introduits dans .NET Framework version 2.0 Dans les versions précédentes du .NET Framework, l'élément browserCaps servait à définir des définitions de navigateur dans les fichiers de configuration.

L'élément browsers utilise la structure suivante.

<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>

Attributs et éléments

Élément

Description

adapter

Spécifie un mappage entre un contrôle serveur Web ASP.NET et l'adaptateur utilisé pour le restituer dans le navigateur actuel. Par exemple, la définition suivante du navigateur NokiaMobileBrowserRainbow contenu dans le fichier Nokia.browser spécifie que les contrôles serveur Menu sont adaptés au navigateur à l'aide de la classe d'adaptateur de contrôle MenuAdapter :

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

Le tableau suivant décrit les attributs requis qui sont contenus dans l'élément adapter.

Attribut

Description

adapterType

Attribut String requis.

Spécifie le nom de la classe qui est utilisée pour modifier la façon dont le contrôle est adapté au navigateur.

controlType

Attribut String requis.

Spécifie le nom du contrôle à mapper à l'adaptateur.

L'élément adapter ne contient pas d'éléments enfants.

browser

Définit une seule définition de navigateur.

Le tableau suivant décrit les attributs pouvant être contenus dans l'élément browser.

Remarque :

Ne modifiez pas les fichiers de définition de navigateur fournis avec ASP.NET car les Service Packs peuvent mettre à jour ces fichiers, remplaçant ainsi vos modifications. Créez plutôt de nouveaux fichiers browser et utilisez l'attribut parentID dans une nouvelle définition de navigateur pour hériter des paramètres ou utilisez l'attribut refID pour ajouter des fonctions à une définition de navigateur existante.

Une définition de navigateur doit définir l'attribut refID ou les attributs id et parentID à la fois.

Attribut

Description

id

Attribut String, requis si l'attribut parentID est utilisé.

Spécifie le nom unique du navigateur qui est défini.

parentID

Attribut String, requis si l'attribut id est utilisé.

Spécifie le nom unique de la définition de navigateur parent à partir duquel hériter des paramètres. Ces paramètres peuvent être remplacés dans la définition de navigateur actuelle. La définition de navigateur parent ne doit pas se trouver dans le même fichier de définition de navigateur mais doit être définie dans la même application ou dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Par exemple, la définition suivante du navigateur WebTV est définie dans le fichier WebTV.browser. La définition du navigateur parent IE2 est définie dans le fichier IE.browser du même répertoire.

<browser id="WebTV" parentID="IE2">

refID

Attribut String, ne peut pas être utilisé si les attributs id et parentID sont utilisés.

Spécifie un identificateur de définition de navigateur existant. Utilisez l'attribut refID pour associer de nouvelles fonctions à une définition de navigateur existante. Vous pouvez configurer plusieurs nœuds de navigateur pour faire référence au même refID. Si l'attribut refID est spécifié, l'élément browser ne peut pas contenir d'élément enfant identification.

L'attribut refID ne remplace pas l'élément ciblé ; au lieu de cela, ses paramètres sont appliqués une fois que tous les autres paramètres d'attribut ont été appliqués. L'ordre d'application des paramètres est le suivant :

  • tous les nœuds <gateway parentID>

  • tous les nœuds <gateway refID>

  • tous les nœuds <browser parentID>

  • tous les nœuds <browser refID>

L'exemple de définition suivant ajoute de nouvelles fonctions à la définition de navigateur IE existante contenue dans le fichier IE.browser.

<browser refID="IE">
    <capabilities>
        <capability name="UseRichTextBox" value="true" />
    </capabilities>
    <controlAdapters>
        <adapter controlType="System.Web.UI.Calendar"
adapterType="ExampleAdapters.ExampleIECalendarAdapter"
        />
    </controlAdapters>
</browser>

L'élément browser peut contenir zéro ou un des éléments enfants suivants :

  • capabilities

  • capture

  • controlAdapters

  • identification

  • sampleHeaders

browsers

Représente l'élément racine obligatoire d'un fichier browser.

capabilities

Définit des valeurs de fonction à définir pour la définition de navigateur actuelle. Pour obtenir la liste de fonctions de navigateur fortement typées, consultez les propriétés de la classe HttpCapabilitiesBase. La plupart de ces propriétés utilisent la casse mixte dans les fichiers de définition de navigateur. Vous pouvez également ajouter vos propres valeurs de fonction.

L'élément capabilities ne contient pas d'attributs.

L'élément capabilities peut contenir zéro ou plusieurs des éléments enfants suivants :

  • capability

capability (élément enfant de capabilities)

Définit une seule valeur de fonction à définir pour la définition de navigateur actuelle. Par exemple, les fonctions suivantes sont définies pour la définition de navigateur IE dans le fichier IE.browser. Cet exemple de définition hérite d'autres fonctions de la définition de navigateur Mozilla dans le fichier Mozilla.browser. Les valeurs qui contiennent du texte à l'intérieur d'un signe dollar suivi d'accolades ($ {}) sont remplacées par les valeurs capturées dans l'expression correspondante dans l'élément enfant userAgent de l'élément 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>

L'élément capability contient les attributs requis suivants.

Attribut

Description

name

Attribut String requis.

Spécifie le nom de la fonction. Pour obtenir la liste de fonctions de navigateur fortement typées, consultez les propriétés de la classe HttpCapabilitiesBase. La plupart de ces propriétés utilisent la casse mixte dans les fichiers de définition de navigateur, par exemple, canSendMail au lieu de CanSendMail. Vous pouvez également ajouter vos propres valeurs de fonction.

value

Attribut String requis.

Spécifie la valeur de la fonction. Les valeurs possibles de chacune des fonctions de navigateur fortement typées sont répertoriées dans les propriétés de la classe HttpCapabilitiesBase. L'attribut value peut contenir des variables capturées à l'intérieur de "$ {}"

L'élément capability ne contient pas d'éléments enfants.

capability (élément enfant de identification ou capture)

Spécifie que la valeur d'une fonction de la classe du navigateur parent doit être comparée à une expression régulière. Par exemple, la définition suivante du navigateur IE5to9 contenu dans le fichier IE.browser utilise un élément capability pour spécifier que le paramètre de la fonction majorversion de la définition parente IE doit correspondre à l'expression régulière incluse afin que cette définition de navigateur soit comparée au navigateur du client. Cet exemple de définition de navigateur inclut des éléments capability qui s'ajoutent ou remplacent des éléments dans la définition parente.

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

Le tableau suivant décrit les attributs contenus dans l'élément capability. L'attribut match ou nonMatch doit être défini, mais pas les deux.

Attribut

Description

match

Attribut String, ne peut pas être utilisé dans le même élément que l'attribut nonMatch.

Spécifie l'expression régulière à laquelle le paramètre de fonction parente doit correspondre pour satisfaire cette identification. Pour plus d'informations sur la mise en forme d'expressions régulières, consultez Expressions régulières du .NET Framework.

name

Attribut String requis.

Spécifie le nom de la fonction parente.

nonMatch

Attribut String, ne peut pas être utilisé dans le même élément que l'attribut match. Cet attribut n'est pas utilisé dans l'élément enfant capability de l'élément capture.

Spécifie l'expression régulière à laquelle le paramètre de fonction parente ne doit pas correspondre pour satisfaire cette identification.

L'élément capability ne contient pas d'éléments enfants.

capture

Définit des informations sur les autres éléments header, userAgent ou capability à utiliser pour capturer des informations sur le navigateur. Cela est utile lors d'une tentative de détection des nouveaux navigateurs qui n'étaient pas disponibles lors du lancement du .NET Framework 2.0. Pour capturer des valeurs, une définition de navigateur peut inclure des captures d'expression régulière dans l'attribut match d'un élément identification. Par exemple, l'élément userAgent suivant défini dans le fichier IE.browser capture la hauteur de l'écran en pixels à partir de l'en-tête de demande de l'agent utilisateur (user agent).

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

Une définition de navigateur peut également avoir à capturer des informations supplémentaires en analysant les en-têtes de demande qui ne sont pas utilisés pour distinguer la classe de navigateur. Par exemple, l'élément capture suivant capture le nombre de touches programmables pour un téléphone cellulaire OpenWave. Les touches programmables affichent les menus et les commandes lorsque vous appuyez sur les boutons matériels correspondants sur les SmartPhone Windows Mobile :

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

L'élément capture ne contient pas d'attributs.

L'élément capture peut contenir zéro ou plusieurs des éléments enfants suivants :

  • header

  • userAgent

  • capability

controlAdapters

Définit un adaptateur de contrôle à utiliser pour adapter le contrôle serveur sur le navigateur.

Le tableau suivant décrit l'attribut contenu dans l'élément controlAdapters .

Attribut

Description

markupTextWriterType

Attribut String facultatif.

Spécifie le type .NET Framework du writer de texte de balisage à utiliser. Le type par défaut est System.Web.UI.XhtmlTextWriter, mais d'autres valeurs possibles pour cet attribut sont System.Web.UI.Html32TextWriter, System.Web.UI.HtmlTextWriter, System.Web.UI.ChtmlTextWriter ou toute classe personnalisée dérivée de l'une de ces classes.

L'élément controlAdapters peut contenir zéro ou plusieurs des éléments enfants suivants :

  • adapter

defaultBrowser

Définit des fonctions de navigateur par défaut dans le fichier Default.browser. Les définitions de navigateur par défaut ne correspondent pas à un navigateur physique spécifique mais sont utilisées par d'autres définitions pour hériter des paramètres. Par exemple, la définition de navigateur Default suivante est contenue dans le fichier Default.browser :

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

La définition de navigateur par défaut est héritée par beaucoup d'autres définitions de navigateur. Par exemple, la définition suivante du navigateur Panasonic est contenue dans le fichier Panasonic.browser.

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

Le tableau suivant décrit l'attribut contenu dans l'élément defaultBrowser.

Attribut

Description

id

Attribut String requis.

Spécifie le nom unique du navigateur.

L'élément defaultBrowser peut contenir les mêmes éléments enfants que l'élément browser.

gateway

Spécifie une seule définition de passerelle. Certains navigateurs mobiles sont connectés au serveur Web à travers une passerelle qui peut ajouter ses propres fonctions. Plusieurs éléments gateway peuvent faire référence au même attribut refID.

L'élément gateway peut contenir les mêmes attributs et éléments enfants que l'élément browser. Par exemple, la définition suivante pour la passerelle IE3AK est obtenue à partir du fichier IE.browser.

    <gateway id="IE3AK" parentID="IE3">
        <identification>
            <capability name="extra" match="; AK;" />
        </identification>
        <capture>
        </capture>
        <capabilities>
            <capability name="ak"  value="true" />
        </capabilities>
    </gateway>
Remarque :

Vous ne pouvez pas avoir de fichier de définition de navigateur dans votre application qui contient un élément browser dont l'attribut parentID fait référence à un élément gateway dans les fichiers de définition par défaut localisée dans le répertoire %SystemRoot\Microsoft.NET\Framework\NuméroVersion\CONFIG\Browsers. Toutefois, vous pouvez définir l'attribut parentID de manière à faire référence à un fichier de définition de navigateur différent dans le même dossier App_Browsers.

header (élément enfant de identification ou capture)

Spécifie une expression à partir de laquelle comparer ou capturer un en-tête HTTP spécifique dans la requête. Par exemple, la définition suivante du navigateur Wml contenu dans le fichier Default.browser identifie un navigateur correspondant en comparant l'en-tête Accept à deux expressions régulières.

<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>

Le tableau suivant décrit les attributs contenus dans l'élément header. L'attribut match ou nonMatch doit être présent, mais pas les deux.

Attribut

Description

match

Attribut String, ne peut pas être utilisé dans le même élément que l'attribut nonMatch.

Spécifie l'expression régulière à laquelle la valeur d'en-tête de demande doit correspondre pour satisfaire cette identification. Pour plus d'informations sur la mise en forme d'expressions régulières, consultez Expressions régulières du .NET Framework.

name

Attribut String requis.

Spécifie le nom de l'en-tête.

nonMatch

Attribut String, ne peut pas être utilisé dans le même élément que l'attribut match. Cet attribut n'est pas utilisé dans l'élément enfant capability de l'élément capture.

Spécifie l'expression régulière à laquelle la valeur d'en-tête de demande ne doit pas correspondre pour satisfaire cette identification.

L'élément header ne contient pas d'éléments enfants.

header (élément enfant de sampleHeaders)

Spécifie un seul exemple d'en-tête pour ce navigateur. Cet élément est facultatif et à titre informatif uniquement. Un simulateur ou un outil de débogage peut utiliser ce jeu d'en-têtes pour émuler le navigateur pour une requête.

Le tableau suivant décrit les attributs contenus dans l'élément header.

Attribut

Description

name

Attribut String facultatif.

Spécifie le nom de l'en-tête.

value

Attribut String facultatif.

Spécifie la valeur de l'en-tête.

L'élément header ne contient pas d'éléments enfants.

identification

Définit des informations concernant l'identification de ce navigateur à partir de la requête entrante.

L'élément identification ne contient pas d'attributs.

L'élément identification peut contenir un ou plusieurs des éléments enfants suivants :

  • header

  • userAgent

  • capability

sampleHeaders

Spécifie un jeu d'exemples d'en-têtes pour ce navigateur. Cet élément est facultatif et à titre informatif uniquement. Un simulateur ou un outil de débogage peut utiliser ce jeu d'en-têtes pour émuler le navigateur pour une requête.

L'élément sampleHeaders ne contient pas d'attributs.

L'élément sampleHeaders peut contenir zéro ou plusieurs des éléments enfants suivants :

  • header

userAgent

Spécifie une expression à laquelle l'en-tête de l'agent utilisateur d'une requête doit être comparé. Par exemple, la définition suivante du navigateur IE4 contenue dans le fichier IE.browser utilise la chaîne "MSIE 4" pour identifier le navigateur par l'en-tête de l'agent utilisateur qu'il envoie avec la requête.

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

Le tableau suivant décrit les attributs contenus dans l'élément userAgent. L'attribut match ou nonMatch doit être présent, mais pas les deux.

Attribut

Description

match

Attribut String, ne peut pas être utilisé dans le même élément que l'attribut nonMatch.

Spécifie l'expression régulière à laquelle l'agent utilisateur doit correspondre pour satisfaire cette identification. Pour plus d'informations sur la mise en forme d'expressions régulières, consultez Expressions régulières du .NET Framework.

nonMatch

Attribut String, ne peut pas être utilisé dans le même élément que l'attribut match.

Spécifie l'expression régulière à laquelle l'agent utilisateur ne doit pas correspondre pour satisfaire cette identification. Cet attribut n'est pas utilisé dans l'élément enfant capability de l'élément capture.

L'élément userAgent ne contient pas d'éléments enfants.

Notes

Si aucun des fichiers de définition de navigateur existants ne répond à vos critères, vous pouvez créer de nouveaux fichiers de définition de navigateur en utilisant le code dans la section Exemple ci-dessous.

Note de sécurité :

Ne téléchargez pas ou n'installez pas de fichiers de définition de navigateur à partir de tiers à moins que leur source ne soit fiable. Examinez un nouveau fichier de définition de navigateur afin de vérifier que tous les espaces de noms inhabituels sont référencés. Pour plus d'informations, consultez Sécurisation de fichiers de définitions de navigateur.

Les fichiers de définition de navigateur prédéfinis sont stockés dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Les fichiers de définition de navigateur au niveau de l'application peuvent être placés dans le répertoire App_Browsers de l'application. Dans les deux emplacements, les fichiers de définition de navigateur doivent avoir une extension de nom de fichier browser. Ne modifiez pas les fichiers de définition de navigateur fournis avec ASP.NET car les Service Packs peuvent mettre à jour ces fichiers, remplaçant ainsi vos modifications. Créez plutôt de nouveaux fichiers browser et utilisez l'attribut parentID dans une nouvelle définition browser pour hériter des paramètres ou utilisez l'attribut refID pour ajouter des fonctions à une définition de navigateur existante.

Au moment de l'exécution, les informations du fichier de définition de navigateur sont fusionnées dans une collection de navigateurs connus dans un objet BrowserCapabilitiesFactory. Lorsqu'une requête est faite, ASP.NET identifie le navigateur demandeur à l'en-tête de la requête et compile un objet HttpBrowserCapabilities qui correspond au type du navigateur demandé. Pour cela, commencez avec un dictionnaire vide et appliquez les étapes récursives suivantes à l'arborescence de la définition de navigateur :

  1. Commencez par la définition de navigateur par défaut qui est toujours considérée une correspondance réussie

  2. Fusionnez les valeurs de fonction spécifiées dans cette définition de navigateur dans le dictionnaire de fonctions de ce navigateur Les valeurs spécifiées dans une définition de navigateur substituent les valeurs définies dans un parent

  3. Évaluez chaque définition enfant afin d'établir une correspondance. Pour chaque enfant correspondant, recommencez à l'étape 1. Les définitions de navigateur sont évaluées après les définitions de passerelle. Si l'agent utilisateur correspond à plusieurs définitions de navigateur ou à plusieurs définitions de passerelle, une exception est levée au moment de l'exécution.

L'objet HttpBrowserCapabilities est mis en cache et peut encore être utilisé pour une requête différente faite par le même type de navigateur.

Une application Web peut accéder à l'instance actuelle de l'objet HttpBrowserCapabilities à l'aide de la propriété HttpRequest.Browser. Cet objet est en lecture seule et contient des propriétés pour chaque fonction. Un développeur de site Web peut également générer une classe personnalisée qui hérite de la classe HttpBrowserCapabilities et stocke une instance dans la propriété HttpRequest.Browser.

Les modifications apportées aux fichiers browser situés dans le répertoire App_Browsers invalident le cache et la requête suivante provoquera la recompilation de l'application. Toutefois, si des modifications sont apportées aux fichiers .browser dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers, vous devez recompiler manuellement l'application en utilisant l'outil %SystemRoot%\Microsoft.NET\Framework\version\aspnet_regbrowsers.exe ou le recompiler par programme en utilisant la classe BrowserCapabilitiesCodeGenerator.

Remarque :

L'utilisation de l'élément browserCaps dans le fichier Web.config pour définir des navigateurs est désapprouvée dans le .NET Framework 2.0 mais encore prise en charge. Les données dans cet élément sont fusionnées avec les informations des fichiers de définition de navigateur.

Lorsqu'un navigateur fait une requête à votre application, les fonctions du navigateur sont stockées dans la propriété Browser. L'identité du navigateur est stockée dans la propriété UserAgent. Les contrôles serveur Web ASP.NET interrogent la liste des fonctions afin de prendre des décisions concernant l'adaptation appropriée du comportement des contrôles de différents navigateurs.

Fonctions

Pour obtenir la liste de fonctions de navigateur fortement typées, consultez les propriétés de la classe HttpCapabilitiesBase. Ces propriétés utilisent la casse mixte dans les fichiers de définition de navigateur. Par exemple, si vous souhaitez spécifier la fonction BackgroundSounds dans votre fichier de définition de navigateur, entrez-la sous la forme backgroundSounds.

Vous pouvez également définir vos propres fonctions.

Une application Web peut récupérer des valeurs de fonction de l'objet HttpBrowserCapabilities de l'une des deux façons suivantes :

  • En accédant au dictionnaire des fonctions. Vous pouvez utiliser cette méthode pour les fonctions personnalisées.

    Par exemple, vous pouvez utiliser le code suivant pour obtenir la valeur de la fonction ECMAScript (JavaScript) du navigateur actuel du client :

    String cap_javascript = Request.Browser["javascript"];
    
  • En appelant une propriété fortement typée qui encapsule une fonction.

    Par exemple, vous pouvez utiliser le code suivant pour obtenir la valeur de la fonction ECMAScript du navigateur actuel du client :

    String cap_javascript = Request.JavaScript;
    

Configuration par défaut

Le .NET Framework est fourni avec des fichiers de définition de navigateur prédéfinis situés dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Vous pouvez créer des fichiers de définition de navigateur au niveau de l'application dans le répertoire App_Browsers de votre application. Pour plus d'informations sur les répertoires ASP.NET spéciaux, consultez Disposition des sites Web ASP.NET.

L'exemple de code suivant est un extrait du fichier Generic.browser situé dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers.

Remarque :

Ne modifiez pas les fichiers de définition de navigateur existants situés dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Ceux-ci sont maintenus par le .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>
</browsers>

L'exemple de code suivant est un extrait du fichier WebTV.browser situé dans le répertoire %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers.

<browsers>
    <browser id="WebTV" parentID="IE2">
        <identification>
            <userAgent match="WebTV/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="backgroundsounds"    value="true" />
            <capability name="browser"             value="WebTV" />
            <capability name="cookies"             value="true" />
            <capability name="isMobileDevice"      value="true" />
            <capability name="letters"             value="${letters}" />
            <capability name="majorversion"        value="${major}" />
            <capability name="minorversion"        value="${minor}" />
            <capability name="tables"              value="true" />
            <capability name="type"                value="WebTV${major}" />
            <capability name="version"             value="${version}" />
        </capabilities>

        <controlAdapters markupTextWriterType="System.Web.UI.Html32TextWriter">
        </controlAdapters>
    </browser>

    <browser id="WebTV2" parentID="WebTV">
        <identification>
            <capability name="minorversion" match="2" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="css1"                value="true" />
            <capability name="ecmascriptversion"   value="1.0" />
            <capability name="javascript"          value="true" />
        </capabilities>
    </browser>

    <gateway id="WebTVbeta" parentID="WebTV">
        <identification>
            <capability name="letters" match="^b" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="beta"    value="true" />
        </capabilities>
    </gateway>
</browsers>

Exemple

L'exemple de code suivant est un fichier browser vide sur lequel vous pouvez générer. Veillez à ne pas créer de références circulaires dans vos fichiers 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>

Informations sur les éléments

Gestionnaire de section de configuration

System.Web.Configuration.HttpCapabilitiesSectionHandler

Membres de configuration

HttpRequest.Browser

HttpCapabilitiesBase.Browsers

HttpCapabilitiesBase.Capabilities

System.Web.HttpBrowserCapabilities

Emplacements configurables

Répertoire Browsers racine de l'ordinateur

Répertoire App_Browsers au niveau de l'application

Configuration requise

Services IIS (Internet Information Services) 5.0, IIS 5.1 ou IIS 6.0

.NET Framework version 2.0

Visual Studio 2005

Voir aussi

Tâches

Comment : détecter les types de navigateurs dans les pages Web ASP.NET

Concepts

Fonctionnalités des contrôles serveur Web ASP.NET et du navigateur

Sécurisation de fichiers de définitions de navigateur

Scénarios de configuration ASP.NET

Vue d'ensemble des filtres de périphérique ASP.NET

Vue d'ensemble de l'architecture du comportement des contrôles adaptables

Vue d'ensemble du développement d'applications Web mobiles ASP.NET

Référence

Browsers

Capabilities

HttpCapabilitiesSectionHandler

HttpBrowserCapabilities

deviceFilters, élément (Schéma des paramètres ASP.NET)

mobileControls, élément (Schéma des paramètres ASP.NET)

browserCaps, élément (Schéma des paramètres ASP.NET)

Autres ressources

Paramètres généraux de configuration (ASP.NET)

Paramètres de configuration ASP.NET