Schema del file di definizione del browser (elemento browsers)

Aggiornamento: novembre 2007

I file di definizione del browser contengono le definizioni per i singoli browser. In fase di esecuzione ASP.NET utilizza le informazioni nell'intestazione della richiesta per determinare quale tipo di browser ha effettuato la richiesta. Utilizza quindi i file con estensione browser per determinare le funzionalità del browser e la modalità di rendering del codice in tale browser. Questa funzione è utile per gli sviluppatori Web che desiderano creare applicazioni da visualizzare su dispositivi mobili, utilizzando gli adattatori di controllo che adattano il comportamento di un controllo server Web ASP.NET a seconda del tipo di dispositivo. Per ulteriori informazioni, vedere i collegamenti nella sezione Vedere anche.

Nota

I file di definizione del browser sono stati introdotti in .NET Framework versione 2.0. Nelle versioni precedenti di .NET Framework, per specificare le definizioni dei browser nei file di configurazione veniva utilizzato l'elemento browserCaps.

Per l'elemento browsers viene utilizzata la struttura seguente.

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

Attributi ed elementi

Elemento

Descrizione

adapter

Specifica un mapping tra un controllo server Web ASP.NET e l'adattatore utilizzato per eseguirne il rendering nel browser corrente. Nella seguente definizione per il browser NokiaMobileBrowserRainbow contenuta nel file Nokia.browser viene ad esempio specificato che i controlli server Menu devono essere adattati al browser utilizzando la classe di adattatori di controllo MenuAdapter:

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

Nella tabella riportata di seguito vengono descritti gli attributi obbligatori contenuti nell'elemento adapter.

Attributo

Descrizione

adapterType

Attributo String obbligatorio.

Specifica il nome della classe utilizzata per modificare la modalità con cui il controllo viene adattato al browser.

controlType

Attributo String obbligatorio.

Specifica il nome del controllo da mappare all'adattatore.

L'elemento adapter non contiene elementi figlio.

browser

Definisce una singola definizione di browser.

Nella tabella riportata di seguito vengono descritti gli attributi che può contenere l'elemento browser.

Nota

Non modificare i file di definizione del browser forniti con ASP.NET, perché questi file potrebbero essere aggiornati dai service pack, sovrascrivendo le modifiche. Creare invece nuovi file con estensione browser e utilizzare l'attributo parentID in una nuova definizione di browser per ereditare le impostazioni oppure l'attributo refID per aggiungere funzionalità a una definizione esistente.

In una definizione di browser è necessario definire l'attributo refID oppure entrambi gli attributi id e parentID.

Attributo

Descrizione

id

Attributo String, obbligatorio se viene utilizzato l'attributo parentID.

Specifica il nome univoco per il browser da definire.

parentID

Attributo String, obbligatorio se viene utilizzato l'attributo id.

Specifica il nome univoco della definizione del browser padre da cui ereditare le impostazioni. Queste impostazioni possono essere sovrascritte nella definizione del browser corrente. La definizione del browser padre non deve necessariamente trovarsi nello stesso file di definizione del browser, ma deve essere definita nella stessa applicazione o nella directory %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Ad esempio, la seguente definizione per il browser WebTV è contenuta nel file WebTV.browser. La definizione per il browser padre IE2 è contenuta nel file IE.browser nella stessa directory.

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

refID

Attributo String, non può essere utilizzato se vengono utilizzati gli attributi id e parentID.

Specifica un identificatore di definizione di browser esistente. Utilizzare l'attributo refID per associare nuove funzionalità a una definizione di browser esistente. È possibile configurare più nodi di browser per fare riferimento allo stesso refID. Se viene specificato l'attributo refID, l'elemento browser non può contenere un elemento figlio identification.

L'attributo refID non sostituisce l'elemento di destinazione. Le sue impostazioni vengono invece applicate dopo che tutte le altre impostazioni dell'attributo sono state applicate. L'ordine di applicazione delle impostazioni è il seguente:

  • tutti i nodi <gateway parentID>

  • tutti i nodi <gateway refID>

  • tutti i nodi <browser parentID>

  • tutti i nodi <browser refID>

Nell'esempio di definizione riportato di seguito vengono aggiunte nuove funzionalità alla definizione del browser IE esistente contenuta nel file 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'elemento browser può contenere o meno uno dei seguenti elementi figlio:

  • capabilities

  • capture

  • controlAdapters

  • identification

  • sampleHeaders

browsers

Rappresenta l'elemento di primo livello necessario di un file con estensione browser.

capabilities

Definisce i valori delle funzionalità da impostare per la definizione del browser corrente. Per un elenco di funzionalità di browser fortemente tipizzate, vedere le proprietà della classe HttpCapabilitiesBase. La maggior parte di queste proprietà utilizza la convenzione Camel nei file di definizione del browser. È inoltre possibile aggiungere valori di funzionalità personalizzati.

L'elemento capabilities non contiene attributi.

L'elemento capabilities può contenere o meno uno o più dei seguenti elementi figlio:

  • capability

capability (elemento figlio di capabilities)

Definisce un singolo valore di funzionalità da impostare per la definizione del browser corrente. Nel file IE.browser vengono ad esempio definite le seguenti funzionalità per il browser IE. Questa definizione di esempio eredita altre funzionalità dalla definizione del browser Mozilla contenuta nel file Mozilla.browser. I valori che contengono testo all'interno di un simbolo del dollaro seguito da parentesi graffe (${}) vengono sostituiti con i valori acquisiti dall'espressione corrispondente contenuta nell'elemento figlio userAgent dell'elemento 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'elemento capability contiene i seguenti attributi obbligatori:

Attributo

Descrizione

name

Attributo String obbligatorio.

Specifica il nome della funzionalità. Per un elenco di funzionalità di browser fortemente tipizzate, vedere le proprietà della classe HttpCapabilitiesBase. La maggior parte di queste proprietà utilizza la convenzione Camel nei file di definizione del browser, ad esempio canSendMail anziché CanSendMail. È inoltre possibile aggiungere valori di funzionalità personalizzati.

value

Attributo String obbligatorio.

Specifica il valore della funzionalità. I possibili valori per ciascuna delle funzionalità del browser fortemente tipizzate sono elencati nelle proprietà della classe HttpCapabilitiesBase. L'attributo value può contenere variabili acquisite all'interno di "${}"

L'elemento capability non contiene elementi figlio.

capability (elemento figlio di identification o capture)

Specifica che è necessario impostare una corrispondenza tra il valore di una funzionalità della classe del browser padre e un'espressione regolare. Nella seguente definizione del browser IE5to9 contenuta nel file IE.browser viene ad esempio utilizzato un elemento capability per specificare che l'impostazione della funzionalità majorversion della definizione padre IE deve corrispondere all'espressione regolare inclusa, affinché questa definizione del browser corrisponda al browser del client. Questa definizione di browser di esempio include elementi capability che si aggiungono o sovrascrivono gli elementi della definizione padre.

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

Nella tabella riportata di seguito vengono descritti gli attributi contenuti nell'elemento capability. È necessario definire l'attributo match o nonMatch, ma non entrambi.

Attributo

Descrizione

match

Attributo String, non può essere utilizzato nello stesso elemento dell'attributo nonMatch.

Specifica l'espressione regolare cui deve corrispondere l'impostazione della funzionalità padre per soddisfare questa identificazione. Per informazioni sul formato delle espressioni regolari, vedere Espressioni regolari di .NET Framework.

name

Attributo String obbligatorio.

Specifica il nome della funzionalità padre.

nonMatch

Attributo String, non può essere utilizzato nello stesso elemento dell'attributo match. Questo attributo non viene utilizzato nell'elemento figlio capability dell'elemento capture.

Specifica l'espressione regolare cui non deve corrispondere l'impostazione della funzionalità padre per soddisfare questa identificazione.

L'elemento capability non contiene elementi figlio.

capture

Definisce le informazioni sugli elementi header, userAgent o capability aggiuntivi da utilizzare per acquisire informazioni sul browser. Questa opzione è utile quando si tenta di individuare nuovi browser che non erano disponibili al momento del rilascio di .NET Framework 2.0. Per acquisire i valori, una definizione di browser può includere acquisizioni di espressioni regolari nell'attributo match di qualsiasi elemento di identificazione. Il seguente elemento userAgent definito nel file IE.browser acquisisce ad esempio l'altezza dello schermo in pixel dall'intestazione della richiesta dell'agente utente.

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

Per una definizione del browser potrebbe inoltre essere necessario acquisire informazioni aggiuntive mediante la scansione delle intestazioni di richiesta che non vengono utilizzate per distinguere la classe di browser. Il seguente elemento capture acquisisce ad esempio il numero di tasti softkey per un telefono cellulare OpenWave. I tasti softkey visualizzano menu e comandi quando l'utente preme i pulsanti hardware corrispondenti su dispositivi SmartPhone basati su Windows Mobile:

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

L'elemento capture non contiene attributi.

L'elemento capture può contenere o meno uno o più dei seguenti elementi figlio:

  • header

  • userAgent

  • capability

controlAdapters

Definisce un adattatore di controllo da utilizzare per adattare il controllo server sul browser.

Nella tabella riportata di seguito viene descritto l'attributo contenuto nell'elemento controlAdapters .

Attributo

Descrizione

markupTextWriterType

Attributo String facoltativo.

Specifica il tipo .NET Framework del writer di testo di codice da utilizzare. Il tipo predefinito è System.Web.UI.XhtmlTextWriter, ma gli altri valori possibili per questo attributo sono System.Web.UI.Html32TextWriter, System.Web.UI.HtmlTextWriter, System.Web.UI.ChtmlTextWriter o qualsiasi classe personalizzata derivata da una di queste classi.

L'elemento controlAdapters può contenere o meno uno o più dei seguenti elementi figlio:

  • adapter

defaultBrowser

Definisce le funzionalità del browser Default nel file Default.browser. Tali definizioni non corrispondono ad alcun browser fisico specifico ma vengono utilizzate da altre definizioni per ereditare le impostazioni. Ad esempio, la seguente definizione del browser Default è contenuta nel file 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 definizione del browser Default è ereditata da numerose altre definizioni di browser. Ad esempio, la seguente definizione per il browser Panasonic è contenuta nel file Panasonic.browser.

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

Nella tabella riportata di seguito viene descritto l'attributo contenuto nell'elemento defaultBrowser.

Attributo

Descrizione

id

Attributo String obbligatorio.

Specifica il nome univoco per il browser.

L'elemento defaultBrowser può contenere gli stessi elementi figlio dell'elemento browser.

gateway

Specifica una singola definizione di gateway. Alcuni browser mobili vengono connessi al server Web tramite un gateway, che può aggiungere funzionalità specifiche. È possibile che più elementi gateway facciano riferimento allo stesso attributo refID.

L'elemento gateway può contenere gli stessi attributi e elementi figlio dell'elemento browser. Ad esempio, la seguente definizione per il gateway IE3AK è contenuta nel file IE.browser.

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

Nota

Non è possibile utilizzare un file di definizione del browser nell'applicazione che contenga un elemento browser il cui attributo parentID fa riferimento a un elemento gateway nei file di definizione predefiniti che si trovano nella directory %SystemRoot\Microsoft.NET\Framework\versionNumber\CONFIG\Browsers. Tuttavia, è possibile impostare l'attributo parentID in modo da fare riferimento a un file di definizione del browser diverso nella stessa cartella App_Browsers.

header (elemento figlio di identification o capture)

Specifica un'espressione con cui deve essere confrontata o che deve acquisire una specifica intestazione HTTP nella richiesta. La seguente definizione per il browser Wml contenuta nel file Default.browser identifica ad esempio un browser corrispondente confrontando l'intestazione Accept con due espressioni regolari.

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

Nella tabella riportata di seguito vengono descritti gli attributi contenuti nell'elemento header. È necessario che sia presente l'attributo match o nonMatch, ma non entrambi.

Attributo

Descrizione

match

Attributo String, non può essere utilizzato nello stesso elemento dell'attributo nonMatch.

Specifica l'espressione regolare cui deve corrispondere il valore dell'intestazione della richiesta per soddisfare questa identificazione. Per informazioni sul formato delle espressioni regolari, vedere Espressioni regolari di .NET Framework.

name

Attributo String obbligatorio.

Specifica il nome dell'intestazione.

nonMatch

Attributo String, non può essere utilizzato nello stesso elemento dell'attributo match. Questo attributo non viene utilizzato nell'elemento figlio capability dell'elemento capture.

Specifica l'espressione regolare cui non deve corrispondere il valore dell'intestazione della richiesta per soddisfare questa identificazione.

L'elemento header non contiene elementi figlio.

header (elemento figlio di sampleHeaders)

Specifica una singola intestazione di esempio per il browser. Questo elemento è facoltativo e viene fornito unicamente a titolo informativo. Un simulatore oppure uno strumento di debug può utilizzare questo set di intestazioni per emulare il browser per una richiesta.

Nella tabella riportata di seguito vengono descritti gli attributi contenuti nell'elemento header.

Attributo

Descrizione

name

Attributo String facoltativo.

Specifica il nome dell'intestazione.

value

Attributo String facoltativo.

Specifica il valore dell'intestazione.

L'elemento header non contiene elementi figlio.

identification

Definisce le informazioni su come identificare il browser dalla richiesta in arrivo.

L'elemento identification non contiene attributi.

L'elemento identification può contenere uno o più dei seguenti elementi figlio:

  • header

  • userAgent

  • capability

sampleHeaders

Specifica un set di intestazioni di esempio per il browser. Questo elemento è facoltativo e viene fornito unicamente a titolo informativo. Un simulatore oppure uno strumento di debug può utilizzare questo set di intestazioni per emulare il browser per una richiesta.

L'elemento sampleHeaders non contiene attributi.

L'elemento sampleHeaders può contenere o meno uno o più dei seguenti elementi figlio:

  • header

userAgent

Specifica un'espressione da confrontare all'intestazione dell'agente utente di una richiesta. Nella seguente definizione per il browser IE4 contenuta nel file IE.browser viene ad esempio utilizzata la stringa "MSIE 4" per identificare il browser in base all'intestazione dell'agente utente inviata con la richiesta.

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

Nella tabella riportata di seguito vengono descritti gli attributi contenuti nell'elemento userAgent. È necessario che sia presente l'attributo match o nonMatch, ma non entrambi.

Attributo

Descrizione

match

Attributo String, non può essere utilizzato nello stesso elemento dell'attributo nonMatch.

Specifica l'espressione regolare cui deve corrispondere l'agente utente per soddisfare questa identificazione. Per informazioni sul formato delle espressioni regolari, vedere Espressioni regolari di .NET Framework.

nonMatch

Attributo String, non può essere utilizzato nello stesso elemento dell'attributo match.

Specifica l'espressione regolare cui non deve corrispondere l'agente utente per soddisfare questa identificazione. Questo attributo non viene utilizzato nell'elemento figlio capability dell'elemento capture.

L'elemento userAgent non contiene elementi figlio.

Note

Se nessuno dei file di definizione del browser esistenti soddisfa i criteri specificati, è possibile creare nuovi file utilizzando il codice riportato nella sezione Esempio seguente.

Nota sulla sicurezza:

Non scaricare né installare file di definizione del browser da terze parti a meno che la fonte non sia considerata attendibile. Esaminare un nuovo file di definizione del browser per verificare se viene fatto riferimento a spazi dei nomi non riconosciuti. Per ulteriori informazioni, vedere Protezione di file di definizione del browser.

I file di definizione del browser predefiniti sono memorizzati nella directory %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. I file di definizione del browser a livello di applicazione possono essere memorizzati nella directory App_Browsers dell'applicazione. In entrambe le directory i file di definizione del browser devono avere l'estensione browser. Non modificare i file di definizione del browser forniti con ASP.NET, perché questi file potrebbero essere aggiornati dai service pack, sovrascrivendo le modifiche. Creare invece nuovi file con estensione browser e utilizzare l'attributo parentID in una nuova definizione di browser per ereditare le impostazioni oppure l'attributo refID per aggiungere funzionalità a una definizione esistente.

In fase di esecuzione le informazioni del file di definizione del browser vengono unite in un insieme di browser noti in un oggetto BrowserCapabilitiesFactory. Quando viene effettuata una richiesta, ASP.NET identifica il browser richiedente dall'intestazione della richiesta e compila un oggetto HttpBrowserCapabilities che corrisponde al tipo del browser richiesto. Questa operazione viene eseguita iniziando da un dizionario vuoto e applicando i seguenti passaggi ricorsivi nella struttura di definizione del browser:

  1. Iniziare dalla definizione del browser predefinita, che viene sempre considerata una corrispondenza corretta.

  2. Unire i valori delle funzionalità specificati in questa definizione nel dizionario di funzionalità relativo al browser. I valori specificati in una definizione del browser eseguono l'override di quelli impostati in un oggetto padre.

  3. Valutare ogni definizione figlio per determinare una corrispondenza. Per ogni elemento figlio corrispondente, iniziare nuovamente dal passaggio 1. Le definizioni del browser vengono valutate dopo quelle del gateway. Se l'agente utente corrisponde a più di una definizione del browser o a più di una definizione del gateway, in fase di esecuzione verrà generata un'eccezione.

L'oggetto HttpBrowserCapabilities viene memorizzato nella cache e potrebbe essere utilizzato di nuovo per una richiesta differente dello stesso tipo di browser.

Un'applicazione Web può accedere all'istanza corrente dell'oggetto HttpBrowserCapabilities utilizzando la proprietà HttpRequest.Browser. L'oggetto è in sola lettura è contiene le proprietà di ogni funzionalità. In alternativa uno sviluppatore Web può costruire una classe personalizzata che eredita dalla classe HttpBrowserCapabilities e memorizzare un'istanza nella proprietà HttpRequest.Browser.

Le modifiche apportate ai file con estensione browser situati nella directory App_Browsers invalidano la cache e con la richiesta successiva l'applicazione verrà ricompilata. Se tuttavia le modifiche vengono apportate nei file con estensione browser nella directory %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers, è necessario ricompilare l'applicazione manualmente utilizzando lo strumento %SystemRoot%\Microsoft.NET\Framework\version\aspnet_regbrowsers.exe oppure a livello di codice utilizzando la classe BrowserCapabilitiesCodeGenerator.

Nota

L'utilizzo dell'elemento browserCaps nel file Web.config per definire i browser è sconsigliato in .NET Framework 2.0, anche se supportato. I dati contenuti in questo elemento vengono uniti alle informazioni dei file di definizione del browser.

Quando un browser effettua una richiesta all'applicazione, le relative funzionalità vengono memorizzate nella proprietà Browser. L'identità del browser viene memorizzata nella proprietà UserAgent. I controlli server Web ASP.NET effettuano una query nell'elenco di funzionalità per definire come adattare il comportamento dei controlli in modo appropriato per browser differenti.

Funzionalità

Per un elenco di funzionalità di browser fortemente tipizzate, vedere le proprietà della classe HttpCapabilitiesBase. Queste proprietà utilizzano la convenzione Camel nei file di definizione del browser. Se ad esempio si desidera specificare la funzionalità BackgroundSounds nel file di definizione del browser, digitarla nel formato backgroundSounds.

È inoltre possibile definire funzionalità personalizzate.

Un'applicazione Web può recuperare i valori delle funzionalità dall'oggetto HttpBrowserCapabilities in uno dei due modi seguenti:

  • Mediante l'accesso al dizionario delle funzionalità. È possibile utilizzare questo metodo per le funzionalità personalizzate.

    Per ottenere ad esempio il valore della funzionalità ECMAScript (JavaScript) per il browser del client corrente, è possibile utilizzare il seguente codice:

    String cap_javascript = Request.Browser["javascript"];
    
  • Mediante una chiamata a una proprietà fortemente tipizzata che incapsula una funzionalità.

    Per ottenere ad esempio il valore della funzionalità ECMAScript per il browser del client corrente, è possibile utilizzare il seguente codice:

    String cap_javascript = Request.JavaScript;
    

Configurazione predefinita

Con .NET Framework vengono forniti i file di definizione del browser predefiniti nella directory %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. È possibile creare file di definizione del browser a livello di applicazione nella directory App_Browsers dell'applicazione. Per informazioni sulle directory speciali di ASP.NET, vedere Layout del sito Web ASP.NET.

L'esempio di codice riportato di seguito è tratto dal file Generic.browser nella directory %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers.

Nota

Non modificare i file di definizione del browser memorizzati nella directory %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers, in quanto vengono gestiti da .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'esempio di codice riportato di seguito è tratto dal file WebTV.browser nella directory %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>

Esempio

L'esempio di codice riportato di seguito è un file con estensione browser vuoto che è possibile utilizzare come base. Prestare attenzione a non creare riferimenti circolari nei file 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>

Informazioni sull'elemento

Gestore della sezione di configurazione

System.Web.Configuration.HttpCapabilitiesSectionHandler

Membri di configurazione

HttpRequest.Browser

HttpCapabilitiesBase.Browsers

HttpCapabilitiesBase.Capabilities

System.Web.HttpBrowserCapabilities

Percorsi configurabili

Directory Browsers a livello di radice del computer

Directory App_Browsers a livello di applicazione

Requisiti

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

.NET Framework versione 2.0

Visual Studio 2005

Vedere anche

Attività

Procedura: rilevare tipi di browser in pagine Web ASP.NET

Concetti

Controlli server Web ASP.NET e funzionalità del browser

Protezione di file di definizione del browser

Scenari di configurazione ASP.NET

Cenni preliminari sul filtro di periferica ASP.NET

Cenni preliminari sull'architettura del comportamento adattivo di un controllo

Cenni preliminari sullo sviluppo di pagine Web mobili ASP.NET

Riferimenti

Browsers

Capabilities

HttpCapabilitiesSectionHandler

HttpBrowserCapabilities

Elemento deviceFilters (schema delle impostazioni ASP.NET)

Elemento mobileControls (schema delle impostazioni ASP.NET)

Elemento browserCaps (schema delle impostazioni ASP.NET)

Altre risorse

Impostazioni di configurazione generali (ASP.NET)

Impostazioni di configurazione di ASP.NET