Browser Definição Arquivo Schema (browsers Element)
Arquivos de definição de navegador contêm definições de navegadores individuais. Em tempo de execução, ASP.NET usa as informações no cabeçalho de requisição para determinar o tipo de navegador tem fez a solicitação. Em seguida, o ASP.NET usa arquivos. browser para determinar os recursos do navegador. ASP.Adaptadores de controle de rede podem usar essas informações para adaptar o comportamento de uma página ASP.NET o controle de servidor da Web dependendo do tipo de dispositivo. Por exemplo, um controle de servidor pode gerar HTML diferente para um navegador gráfico, como o Internet Explorer que seria necessário para um dispositivo móvel.
Observação
Arquivos de definição do navegador foram introduzidos no.NET Framework versão 2.0.Em versões anteriores do.NET Framework, o browserCaps elemento foi usado para definir as definições de navegador em arquivos de configuração.
<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>
Atributos e elementos
Elemento |
Descrição |
---|---|
adapter |
Especifica um mapeamento entre um aplicativo ASP.NET Web server control e o adaptador usado para processá-lo no navegador atual. Por exemplo, a seguinte definição para o NokiaMobileBrowserRainbow navegador contida no arquivo Nokia.browser Especifica que Menu controles de servidor pode ser adaptada para o navegador usando o MenuAdapter classe do adaptador de controle:
A tabela a seguir descreve os atributos necessários que estão contidos no adapter elemento.
AtributoDescrição
adapterType Obrigatório String atributo.Especifica o nome da classe que é usado para alterar a maneira como o controle é adaptado para o navegador.
controlType Obrigatório String atributo.Especifica o nome do controle para mapear para o adaptador.
O adapter elemento contém elementos nenhum filho. |
browser |
Define uma definição de navegador único. A tabela a seguir descreve os atributos que o browser elemento pode conter. Observação Não altere os arquivos de definição de navegador que vêm com o ASP.NET porque os Service Packs podem atualizar esses arquivos, substituindo as suas alterações.Em vez disso, criar novos arquivos. browser e usar o parentID atributo em uma nova definição de navegador para herdar as configurações ou usar o refID atributo a adicionar recursos para uma definição de navegador existente. Uma definição de navegador deve definir tanto a refID atributo ou ambos a id e parentID atributos.
AtributoDescrição
id String atributo, necessário se o parentID atributo é usado.Especifica o nome exclusivo para o navegador que está sendo definido.
parentID String atributo, necessário se o id atributo é usado.Especifica o nome exclusivo de definição de navegador pai da qual herdam as configurações.Essas configurações podem ser substituídas na definição do navegador atual.A definição de navegador pai não precisa estar no mesmo arquivo de definição de navegador, mas deve ser definida no mesmo aplicativo ou o %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers directory.Por exemplo, a seguinte definição para o WebTV navegador é definido no arquivo WebTV.browser.A definição para o IE2 navegador pai é definido no arquivo IE.browser no mesmo diretório. <browser id=" WebTV " parentID=" IE2 ">
refID
String o atributo, não pode ser usado se o id e parentID atributos são usados.Especifica um identificador de definição de navegador existente.Use o refID atributo para associar os novos recursos com uma definição de navegador existente.Você pode configurar vários nós de navegador para se referir ao mesmo refID.Se a refID atributo for especificado, o browser elemento não pode conter um identification filho elemento.O refID atributo não substitui o elemento de destino. em vez disso, suas configurações são aplicadas após a aplicação de todas as outras configurações de atributo.A ordem em que as configurações são aplicadas é:
O browser elemento pode conter zero ou mais dos seguintes elementos filho:
|
browsers |
Representa o elemento raiz necessários de um arquivo. browser. |
capabilities |
Define os valores de recurso para definir a definição atual do navegador. Para obter uma lista dos recursos do navegador com rigidez de tipos, consulte as propriedades de HttpCapabilitiesBase classe. A maioria dessas propriedades usa camel casing nos arquivos de definição de navegador. Você também pode adicionar seus próprios valores de recurso. O capabilities elemento contém sem atributos. O capabilities elemento pode conter zero ou mais o seguinte elemento filho:
|
capability(elemento filho do capabilities) |
Define um valor único recurso para definir a definição atual do navegador. Por exemplo, os seguintes recursos são definidos para o IE a definição de navegador no arquivo IE.browser. Essa definição de exemplo herda a outros recursos a partir de Mozilla a definição de navegador no arquivo Mozilla.browser. Os valores que contêm texto dentro de um sinal de cifrão seguido por chaves ($ {}) são substituídos pelos valores capturados da expressão de correspondência na userAgent elemento filho a identification elemento "^Mozilla[^(]*\([C|c]ompatible;\s*MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'[^)]*)".
O capability elemento contém os seguintes atributos necessários.
AtributoDescrição
name Obrigatório String atributo.Especifica o nome do recurso.Para obter uma lista dos recursos do navegador com rigidez de tipos, consulte as propriedades de HttpCapabilitiesBase classe.A maioria dessas propriedades usa camel casing nos arquivos de definição de navegador, por exemplo, canSendMail em vez de CanSendMail.Você também pode adicionar seus próprios valores de recurso.
value Obrigatório String atributo.Especifica o valor do recurso.Valores possíveis para cada um dos recursos com rigidez de tipos de navegador são listados nas propriedades do HttpCapabilitiesBase classe.O atributo value pode conter variáveis capturadas dentro de "$ {}"
O capability elemento contém elementos nenhum filho. |
capability(elemento filho do identification or capture) |
Especifica que o valor de um recurso da classe pai navegador ser correspondida por uma expressão regular. Por exemplo, a seguinte definição para o IE5to9 navegador contida o IE.browser arquivo usa um capability elemento para especificar que o majorversion configuração de recursos da IE definição pai deve corresponder a expressão regular incluída para que essa definição de navegador para que coincidam com de navegador. o cliente Esta definição de navegador de exemplo inclui capability elementos que adicionar ou substituir os elementos na definição do pai.
A tabela a seguir descreve os atributos que o capability elemento contém. Tanto o match ou nonMatch atributo deve ser definido, mas não ambos.
AtributoDescrição
match String o atributo, não pode ser usado no mesmo elemento como o nonMatch atributo.Especifica a expressão regular que a configuração do recurso pai deve corresponder para atender essa identificação.Para obter informações sobre a formatação de expressões regulares, consulte Expressões Regulares do .NET Framework.
name Obrigatório String atributo.Especifica o nome do recurso pai.
nonMatch String o atributo, não pode ser usado no mesmo elemento como o match atributo.Esse atributo não é usado no capability elemento filho a capture elemento.Especifica a expressão regular que a configuração do recurso pai não deve corresponder para atender essa identificação.
O capability elemento contém elementos nenhum filho. |
capture |
Define informações sobre o que mais header, userAgent ou capability elementos usar para capturar informações sobre o navegador. Isso é útil ao tentar detectar novos navegadores que não estavam disponíveis quando o.NET Framework 2.0 foi lançado. Para capturar os valores, a definição de navegador pode incluir capturas de expressão regular a match o atributo de qualquer elemento de identificação. Por exemplo, o seguinte userAgent definido no arquivo IE.browser do elemento captura a altura da tela em pixels do cabeçalho de solicitação do usuário do agente.
Uma definição de navegador também pode precisar capturar informações adicionais, examinando os cabeçalhos de solicitação que não são usados para distinguir a classe do navegador. Por exemplo, o seguinte capture elemento captura o número de chaves suaves para um telefone celular OpenWave. Teclas soft exibam menus e comandos quando você pressiona os botões de hardware correspondente em SmartPhones baseados no Windows Mobile:
O capture elemento contém sem atributos. O capture elemento pode conter zero ou mais dos seguintes elementos filho:
|
controlAdapters |
Define um adaptador de controle para usar para adaptar o controle de servidor no navegador. A tabela a seguir descreve o atributo que o controlAdapters elemento contém.
AtributoDescrição
markupTextWriterType Opcional String atributo.Especifica o.NET Framework equivalente do gravador de texto de marcação para usar.O tipo padrão é System.Web.UI.XhtmlTextWriter, mas outros valores de possibilidades para este atributo são System.Web.UI.Html32TextWriter, System.Web.UI.HtmlTextWriter, System.Web.UI.ChtmlTextWriter, ou qualquer classe personalizada derivada de uma dessas classes.
O controlAdapters elemento pode conter zero ou mais o seguinte elemento filho:
|
defaultBrowser |
Define os recursos de navegador padrão no arquivo Default.browser. Definições de navegador padrão não coincidem qualquer navegador físico específico, mas são usadas por outras definições para herdar as configurações. Por exemplo, o seguinte Default a definição de navegador está contida no arquivo Default.browser:
A definição de navegador padrão é herdada por outras definições de navegador. Por exemplo, a seguinte definição para o Panasonic navegador está contida no arquivo Panasonic.browser. <browser id="Panasonic" parentID="Default"> A tabela a seguir descreve o atributo que o defaultBrowser elemento contém.
AtributoDescrição
id Obrigatório String atributo.Especifica o nome exclusivo para o navegador.
O defaultBrowser elemento pode conter os mesmos elementos filho de browser elemento. |
gateway |
Especifica a definição de uma único gateway. Alguns navegadores móveis são conectados ao servidor Web através de um gateway, pode adicionar seus próprios recursos. É possível que vários elementos de gateway referir-se a mesma refID atributo. O gateway elemento pode conter os mesmos atributos e elementos filho como o browser elemento. Por exemplo, a seguinte definição para o IE3AK gateway é o do arquivo IE.browser.
Observação Você não pode ter um arquivo de definição de navegador em seu aplicativo que contém um browser elemento cuja parentID atributo se refere a uma gateway elemento nos arquivos de definição padrão localizados no diretório %SystemRoot\Microsoft.NET\Framework\versionNumber\CONFIG\Browsers.No entanto, você pode definir o parentID atributo para se referir a um arquivo de definição de navegador diferente na mesma pasta de App_Browsers. |
header(elemento filho do identification or capture) |
Especifica uma expressão em relação à qual corresponder ou capturar um cabeçalho HTTP específico na solicitação. Por exemplo, a seguinte definição para o Wml navegador contida no arquivo Default.browser identifica um navegador correspondente, comparando o Accept cabeçalho para duas expressões regulares.
A tabela a seguir descreve os atributos que o header elemento contém. Tanto o match ou nonMatch atributo deve estar presente, mas não ambos.
AtributoDescrição
match String o atributo, não pode ser usado no mesmo elemento como o nonMatch atributo.Especifica a expressão regular, o valor do cabeçalho de solicitação deve corresponder para atender essa identificação.Para obter informações sobre a formatação de expressões regulares, consulte Expressões Regulares do .NET Framework.
name Obrigatório String atributo.Especifica o nome do cabeçalho.
nonMatch String o atributo, não pode ser usado no mesmo elemento como o match atributo.Esse atributo não é usado no capability elemento filho a capture elemento.Especifica a expressão regular, o valor do cabeçalho de solicitação não deve corresponder para atender essa identificação.
O header elemento contém elementos nenhum filho. |
header(elemento filho do sampleHeaders) |
Especifica um único exemplo de cabeçalho para este navegador. Este elemento é opcional e apenas para fins informativos. Uma ferramenta de depuração ou o simulator pode usar este conjunto de cabeçalhos para emular o navegador para uma solicitação. A tabela a seguir descreve os atributos que o header elemento contém.
AtributoDescrição
name Opcional String atributo.Especifica o nome do cabeçalho.
value Opcional String atributo.Especifica o valor do cabeçalho.
O header elemento contém elementos nenhum filho. |
identification |
Define informações sobre como identificar este navegador da solicitação de entrada. O identification elemento contém sem atributos. O identification elemento pode conter um ou mais dos seguintes elementos filho:
|
sampleHeaders |
Especifica um conjunto de cabeçalhos de exemplo para este navegador. Este elemento é opcional e apenas para fins informativos. Uma ferramenta de depuração ou o simulator pode usar este conjunto de cabeçalhos para emular o navegador para uma solicitação. O sampleHeaders elemento contém sem atributos. O sampleHeaders elemento pode conter zero ou mais o seguinte elemento filho:
|
userAgent |
Especifica uma expressão em relação à qual corresponde ao cabeçalho do agente do usuário de uma solicitação. Por exemplo, a seguinte definição para o IE4 navegador contida o IE.browser usa o arquivo do "MSIE 4" seqüência de caracteres para identificar o navegador pelo cabeçalho de agente do usuário que envia com a solicitação.
A tabela a seguir descreve os atributos que o userAgent elemento contém. Tanto o match ou nonMatch atributo deve estar presente, mas não ambos.
AtributoDescrição
match String o atributo, não pode ser usado no mesmo elemento como o nonMatch atributo.Especifica a expressão regular, o agente de usuário deve corresponder para atender essa identificação.Para obter informações sobre a formatação de expressões regulares, consulte Expressões Regulares do .NET Framework.
nonMatch String o atributo, não pode ser usado no mesmo elemento como o match atributo.Especifica a expressão regular, o agente de usuário não deve corresponder para atender essa identificação.Esse atributo não é usado no capability elemento filho a capture elemento.
O userAgent elemento contém elementos nenhum filho. |
Comentários
Se você achar que nenhum dos arquivos de definição de navegador existente atende a seus critérios, você pode criar novos arquivos de definição de navegador usando o código de exemplo seção abaixo.
Observação sobre segurança |
---|
Não baixe ou instale arquivos de definição de navegador de terceiros a não ser que você confie na origem deles.Examine o novo arquivo de definição de navegador para ver se quaisquer namespaces desconhecidos são referenciados.Para obter mais informações, consulte Protegendo arquivos de definição do navegador. |
Arquivos de definição de navegador predefinidos são armazenados na %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers directory. Arquivos de definição de navegador de nível de aplicativo podem ser colocados no diretório do aplicativo App_Browsers. Em ambos locais, arquivos de definição de navegador devem possuir a extensão de arquivo .browser. Não altere os arquivos de definição de navegador que vêm com o ASP.NET porque os Service Packs podem atualizar esses arquivos, substituindo as suas alterações. Em vez disso, criar novos arquivos. browser e usar o parentID atributo em uma nova browser definição herdam as configurações ou usar o refID atributo a adicionar recursos para uma definição de navegador existente.
Em tempo de execução, informações do arquivo de definição de navegador são mescladas em uma coleção de navegadores conhecidos em um BrowserCapabilitiesFactory objeto. Quando uma solicitação é feita, ASP.NET identifica o navegador solicitante, o cabeçalho de solicitação e compila uma HttpBrowserCapabilities objeto que corresponde ao tipo de navegador solicitada. Isso é feito iniciando com um dicionário vazio, e aplicando as seguintes etapas recursiva em árvore de definição de navegador:
Inicia na definição de navegador padrão, que sempre é considerada uma correspondência bem-sucedida.
Mescla valores de capacidade especificados nessa definição de browser com o dicionário de capacidades para este navegador. Valores especificados em uma definição de navegador sobrescrevem valores definidos em um nível superior.
Avalia cada definição do nível inferior para determinar uma correspondência. Para cada filho correspondente, inicie na etapa 1 novamente. Definições de navegador são avaliadas depois definições de gateway. Se o agente do usuário coincidir com a definição de navegador mais de um ou mais de um gateway, uma exceção é lançada em tempo de execução.
O HttpBrowserCapabilities objeto é armazenado em cache e pode ser usado novamente para uma solicitação diferente do mesmo tipo de navegador.
Um aplicativo da Web pode acessar a instância atual da HttpBrowserCapabilities de objeto usando o HttpRequest.Browser propriedade. Este objeto é somente leitura e contém propriedades para cada recurso. Como alternativa, um desenvolvedor da Web pode construir uma classe personalizada que herda de HttpBrowserCapabilities classe e armazenar uma instância na HttpRequest.Browser propriedade.
As alterações nos arquivos. browser, localizados na pasta App_Browsers invalidar o cache e a próxima solicitação causará recompilar o aplicativo. No entanto, se forem feitas alterações arquivos. browser na %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers directory, você deve manualmente recompilar o aplicativo usando o %SystemRoot%\Microsoft.NET\Framework\versão\aspnet_regbrowsers.exe ferramenta, ou você deve programaticamente recompilá-lo usando o BrowserCapabilitiesCodeGenerator classe.
Observação
Usando o browserCaps o elemento no arquivo Web. config para definir navegadores é substituído na.NET Framework 2.0, mas ainda é suportado.Os dados nesse elemento são mesclados com as informações de arquivos de definição de navegador.
Quando um navegador faz uma solicitação para seu aplicativo, os recursos do navegador são armazenados na Browser propriedade. A identidade do navegador é armazenada nas UserAgent propriedade. ASP.NET Web server controls consultam a lista de recursos para tomar decisões sobre como adaptar o comportamento dos controles apropriadamente para diferentes navegadores.
Recursos
Para obter uma lista dos recursos do navegador com rigidez de tipos, consulte as propriedades de HttpCapabilitiesBase classe. Essas propriedades utilizam camel casing nos arquivos de definição de navegador. Por exemplo, se você desejar especificar o BackgroundSounds o recurso no seu arquivo de definição de navegador, digitá-la como backgroundSounds.
Você também pode definir seus próprios recursos.
Um aplicativo da Web pode recuperar valores de capacidade do HttpBrowserCapabilities de objeto em uma destas duas maneiras:
Acessando o dicionário de recursos. Você pode usar esse método para recursos personalizados.
Por exemplo, para obter o valor do recurso ECMAScript (JavaScript) para o navegador do cliente atual, você pode usar o seguinte código:
String cap_javascript = Request.Browser["javascript"];
Chamando uma propriedade com rigidez de tipos que encapsula um recurso.
Por exemplo, para obter o valor do recurso para o navegador do cliente atual ECMAScript, você pode usar o seguinte código:
String cap_javascript = Request.JavaScript;
Configuração padrão
A.NET Framework vem com arquivos de definição de navegador predefinido a %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers directory. Você pode criar o nível do aplicativo navegador arquivos de definição na pasta App_Browsers do seu aplicativo. Para obter informações sobre pastas especiais ASP.NET diretórios, consulte Estrutura de pastas de projetos da Web do ASP.NET.
O exemplo de código a seguir é o arquivo Generic.browser do %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers directory.
Observação
Não altere os arquivos de definição de navegador existentes no %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers directory.Esses são mantidos pelo.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>
Exemplo
O exemplo de código a seguir é um arquivo de browser vazio que pode ser criado. Tenha cuidado para não criar referências circulares em seus arquivos de navegador.
<?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>
Informações do elemento
Manipulador da seção de configuração |
|
Membros de configuração |
|
Locais configuráveis |
Diretório de navegadores de nível de raiz de máquina. Diretório App_Browsers nível de aplicativo |
Requisitos |
Serviços de informações da Internet (IIS) 5.0 ou posterior .NET Framework versão 2.0 ou posterior Visual Studio de 2005 ou uma versão posterior |
Consulte também
Tarefas
Como: Detectar tipos de navegadores e recursos do navegador em páginas da Web do ASP.NET
Referência
HttpCapabilitiesSectionHandler
deviceFilters Element (ASP.NET Settings Schema)
mobileControls Element (ASP.NET Settings Schema)
browserCaps Element (ASP.NET Settings Schema)
Conceitos
Controles de servidor Web do ASP.NET e recursos do navegador
Protegendo arquivos de definição do navegador
Cenários de configuração ASP.NET
Visão geral sobre filtragem de dispositivo do ASP.NET
Visão Geral Arquitetural do Comportamento de Controle Adaptativo
Outros recursos
ASP.NET de móveis: A versão oficial do Microsoft ASP.NET Site