Navegador Definition arquivo esquema (browsers elemento)
Arquivos de definição de navegador contêm definições de navegadores individuais. Em time de execução, ASP.NET usa as informações no cabeçalho da solicitação para determinar que tipo de navegador fez a solicitação. Em seguida, o ASP.NET usa arquivos .browser para determinar as capacidades do navegador e como processar a marcação para esse navegador. Isso é útil para desenvolvedores da Web que desejam criar aplicativos que podem ser exibidos em dispositivos móveis, fazer uso de adaptadores de controle que se adaptar o comportamento de um controle de servidor Web do ASP.NET dependendo do tipo de dispositivo. Para obter mais informações, consulte os links no Consulte também seção.
Observação: |
---|
Arquivos de definição do navegador foram introduzidos o .NET estrutura versão 2.0. Em versões anteriores do .NET estrutura, o browserCaps elemento foi usado para definir as definições de navegador em arquivos de configuração. |
O elemento browsers usa a seguinte estrutura.
<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 controle de servidor Web do ASP.NET e o adaptador usado para processá-lo no navegador corrente. Por exemplo, a seguinte definição para o NokiaMobileBrowserRainbow Especifica que, contido no arquivo Nokia.browser navegador Menu controles de servidor ser adaptada para o navegador usando o MenuAdapter classe do adaptador de controle:
A tabela a seguir descreve os atributos necessários estão contidos no adapter elemento.
Atributo Descrição
adapterType Necessário String atributo. Especifica o nome da classe que é usado para alterar a maneira como o controle é adaptado para o navegador.
controlType Necessário String atributo. Especifica o nome do controle para mapear para o adaptador.
The adapter elemento não contém nenhum elemento 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 serviço packs podem atualizar esses arquivos, substituindo as suas alterações.Em vez disso, criar novos arquivos .navegador e use o parentID o atributo em uma nova definição de navegador para herdar as configurações ou usar o refID atributo adicionar recursos a uma definição de navegador.
Uma definição de navegador deve definir ambos o refID atributo ou ambos os id e parentID atributos.
Atributo Descrição
id String atributo, necessário se o parentID o atributo é usado. Especifica o nome exclusivo para o navegador que está sendo definido.
parentID String atributo, necessário se o id o atributo é usado. Especifica o nome exclusivo da definição de navegador pai da qual herdam as configurações.Essas configurações podem ser substituídas na definição do navegador corrente.A definição de navegador pai não possui estar no mesmo arquivo de definição de navegador, mas devem ser definida no mesmo aplicativo ou no %SystemRoot%\Microsoft.NET\estrutura\ versão \CONFIG\Browsers diretório.Por exemplo, a seguinte definição para o WebTV navegador está 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 os 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. Você pode configurar vários nós de navegador para referir-se a mesma refID. Se o refID atributo for especificado, o browser elemento não pode conter um identification elemento filho. The 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 é:
The browser elemento pode conter zero ou mais dos seguintes elementos filho:
|
browsers |
Representa o elemento raiz exigido de um arquivo .navegador. |
capabilities |
Define os valores de recurso para conjunto para a definição de navegador corrente. Para obter uma lista de recursos do navegador com fortemente tipado, ver as propriedades do 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. The capabilities elemento contém sem atributos. The capabilities elemento pode conter zero ou mais o seguinte elemento filho:
|
capability (elemento filho do capabilities) |
Define um valor único recurso para conjunto para a definição de navegador corrente. Por exemplo, os seguintes recursos são definidos para o IE definição de navegador no arquivo IE.browser. Essa definição de exemplo herda outros recursos do Mozilla 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 da expressão de correspondência no capturadosuserAgent elemento filho das identification elemento "^Mozilla[^(]*\([C|c]ompatible;\s*MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'[^)]*)".
The capability elemento contém os seguintes atributos necessários.
Atributo Descrição
name Necessário String atributo. Especifica o nome do recurso.Para obter uma lista de recursos do navegador com fortemente tipado, ver as propriedades do HttpCapabilitiesBase classe. A maior parte dessas propriedades usar 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 Necessário String atributo. Especifica o valor do recurso.Valores possíveis para cada um dos recursos do navegador com fortemente tipado estão listados nas propriedades do HttpCapabilitiesBase classe. O atributo valor pode conter variáveis capturadas em "$ {}"
The capability elemento não contém nenhum elemento filho. |
capability (elemento filho do identification ou capture) |
Especifica que o valor de um recurso da classe pai navegador ser comparados com uma expressão regular. Por exemplo, a seguinte definição para o IE5to9 navegador contida IE.browser arquivo usa uma capability elemento para especificar que o majorversion configuração de capacidade do IE definição de pai deve corresponder à expressão regular incluído para que essa definição de navegador para que coincidam com o navegador do cliente. Essa definição de navegador do 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. Ambos o match ou nonMatch atributo deve ser definido, mas não ambos.
Atributo Descrição
match String o atributo, não pode ser usado no mesmo elemento sistema autônomo o nonMatch atributo. Especifica a expressão regular que a configuração do recurso pai deve coincidir para atender a essa identificação.Para obter informações sobre a formatação de expressões regulares, consulte Expressões Regulares do .NET Framework.
name Necessário String atributo. Especifica o nome do recurso pai.
nonMatch String o atributo, não pode ser usado no mesmo elemento sistema autônomo o match atributo. Este atributo não é usado no capability elemento filho das capture elemento. Especifica a expressão regular não deve corresponder a configuração do recurso pai para atender a essa identificação.
The capability elemento não contém nenhum elemento filho. |
capture |
Define informações sobre quais adicionais header, userAgent ou capability elementos de usar para capturar informações sobre o navegador. Isso é útil ao tentar detectar novos navegadores que não estavam disponível quando o .NET estrutura 2.0 foi lançado. Para capturar os valores, uma definição de navegador pode incluir capturas de expressão regular no match atributo de qualquer elemento de identificação. Por exemplo, a seguinte userAgent elemento definido no arquivo IE.navegador captura a altura da tela em pixels do cabeçalho de solicitação de agente do usuário.
Uma definição de navegador também pode precisar capturar informações adicionais, examinando cabeçalhos de solicitação que não são usados para distinguir a classe do navegador. Por exemplo, a seguinte capture elemento captura o número de teclas flexíveis para um telefone celular de OpenWave. Na tela exibir menus e comandos quando você pressiona botões de hardware correspondente em SmartPhones baseados no Windows Mobile:
The capture elemento contém sem atributos. The capture elemento pode conter zero ou mais dos seguintes elementos filho:
|
controlAdapters |
Define um adaptador de controle para usar para adaptar o controle do servidor no navegador. A tabela a seguir descreve o atributo que o controlAdapters elemento contém.
Atributo Descrição
markupTextWriterType Opcional String atributo. Especifica o tipo do .NET estrutura do Texto writer 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.
The 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 com qualquer navegador físico específico, mas são usadas por Outros definições para herdar as configurações. Por exemplo, a seguinte Default definição de navegador é contida no arquivo padrão.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á contido no arquivo Panasonic.browser. <browser id="Panasonic" parentID="Default"> A tabela a seguir descreve o atributo que o defaultBrowserelemento contém.
Atributo Descrição
id Necessário String atributo. Especifica o nome exclusivo para o navegador.
The defaultBrowser elemento pode conter sistema autônomo mesmos elementos filho sistema autônomo o browser elemento. |
gateway |
Especifica uma definição de gateway único. Alguns navegadores móveis estão conectados a servidor Web por meio de um gateway, que pode adicionar seus próprios recursos. É possível que vários elementos de gateway referir-se a mesma refID atributo. The gateway elemento poderá conter sistema autônomo mesmos atributos e elementos filho sistema autônomo o browser elemento. Por exemplo, a seguinte definição para o IE3AK gateway é a partir do arquivo IE.navegador.
Observação:
Não é possível ter um arquivo de definição de navegador em seu aplicativo que contém um browser elemento cuja parentID atributo se refere a um gateway elemento nos arquivos de definição padrão localizado no diretório %SystemRoot\Microsoft.NET\estrutura\versionNumber\CONFIG\Browsers. No entanto, você pode conjunto o parentID atributo para fazer referência a um arquivo de definição de navegador diferentes na mesma pasta App_Browsers.
|
header (elemento filho do identification ou 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 padrão.browser identifica um navegador correspondente, comparando o Accept cabeçalho de duas expressões regulares.
A tabela a seguir descreve os atributos que o header elemento contém. Ambos o match ou nonMatch atributo deve estar presente, mas não ambos.
Atributo Descrição
match String o atributo, não pode ser usado no mesmo elemento sistema autônomo o nonMatch atributo. Especifica a expressão regular que o valor do cabeçalho de solicitação deve coincidir para atender a essa identificação.Para obter informações sobre a formatação de expressões regulares, consulte Expressões Regulares do .NET Framework.
name Necessário String atributo. Especifica o nome do cabeçalho.
nonMatch String o atributo, não pode ser usado no mesmo elemento sistema autônomo o match atributo. Este atributo não é usado no capability elemento filho das capture elemento. Especifica a expressão regular não deve corresponder ao valor do cabeçalho de solicitação para atender a essa identificação.
The header elemento não contém nenhum elemento filho. |
header (elemento filho do sampleHeaders) |
Especifica um cabeçalho de exemplo único para este navegador. Este elemento é opcional e para fins informativos somente. Um simulador ou ferramenta de depuração 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.
Atributo Descrição
name Opcional String atributo. Especifica o nome do cabeçalho.
value Opcional String atributo. Especifica o valor do cabeçalho.
The header elemento não contém nenhum elemento filho. |
identification |
Define informações sobre como identificar este navegador da solicitação de entrada. The identification elemento contém sem atributos. The 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 para fins informativos somente. Um simulador ou ferramenta de depuração pode usar este conjunto de cabeçalhos para emular o navegador para uma solicitação. The sampleHeaders elemento contém sem atributos. The sampleHeaders elemento pode conter zero ou mais o seguinte elemento filho:
|
userAgent |
Especifica uma expressão que corresponde ao cabeçalho de agente do usuário de uma solicitação. Por exemplo, a seguinte definição para o IE4 navegador contida IE.browser arquivo usa o "MSIE 4" seqüência de caracteres para identificar o navegador de acordo com o cabeçalho de agente do usuário que envia a solicitação.
A tabela a seguir descreve os atributos que o userAgent elemento contém. Ambos o match ou nonMatch atributo deve estar presente, mas não ambos.
Atributo Descrição
match String o atributo, não pode ser usado no mesmo elemento sistema autônomo o nonMatch atributo. Especifica a expressão regular deve coincidir com o agente do usuário para atender a 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 sistema autônomo o match atributo. Especifica a expressão regular não deve corresponder ao agente do usuário para atender a essa identificação.Este atributo não é usado no capability elemento filho das capture elemento.
The userAgent elemento não contém nenhum elemento 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 no Exemplo seção abaixo.
Observação de segurança: |
---|
Não baixar ou instalar arquivos de definição de navegador de terceiro partes, a menos que confie sua fonte. Examine um arquivo de definição de navegador nova para ver se quaisquer espaços para nomes desconhecidos são referenciados. Para obter mais informações, consulte Protegendo arquivos de definição do navegador. |
Navegador predefinido definição arquivos são armazenados no %SystemRoot%\Microsoft.NET\estrutura\ versão \CONFIG\Browsers diretório. Arquivos de definição de navegador de nível de aplicativo podem ser colocados no diretório de App_Browsers do aplicativo. Nos dois locais, arquivos de definição de navegador devem ter uma extensão de nome de arquivo .browser. Não altere os arquivos de definição de navegador que vêm com o ASP.NET porque serviço packs podem atualizar esses arquivos, substituindo as suas alterações. Em vez disso, criar novos arquivos .browser e use o parentID atributo em um novo browser definição de herdar definições ou usar o refID atributo adicionar recursos a uma definição de navegador.
Em em time 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 um HttpBrowserCapabilities objeto que corresponde ao tipo de navegador solicitado. Isso é concluído iniciando com um dicionário vazio, e aplicando as seguintes etapas recursiva em relação a árvore de definição de navegador:
Começar a definição de navegador padrão, que sempre é considerada uma correspondência correta.
Mescle os valores de recurso especificados nesta definição de navegador no dicionário de recursos para este navegador. Valores especificados em uma definição de navegador substituem os valores definidos em um pai.
Avalie cada definição de filho para determinar uma correspondência. Para cada criança correspondente, inicie na etapa 1 novamente. Definições de navegador são avaliadas depois de definições de gateway. Se o agente do usuário corresponde a mais de uma definição de navegador ou mais de uma definição de gateway, uma exceção é lançada em time de execução.
The HttpBrowserCapabilities objeto é armazenado em cache e pode ser usado novamente para uma solicitação diferente do mesmo tipo de navegador.
Um aplicativo Web Web pode acessar a instância corrente do HttpBrowserCapabilities 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 a HttpBrowserCapabilities classe e armazenar uma instância no HttpRequest.Browser propriedade.
As alterações nos arquivos .navegador localizados na pasta App_Browsers invalidar o cache e a próxima solicitação causarão recompilar o aplicativo. No entanto, se alterações forem feitas a arquivos .navegador o %SystemRoot%\Microsoft.NET\estrutura\ versão\CONFIG\Browsers diretório, manualmente você deve recompilar o aplicativo usando o %SystemRoot%\Microsoft.NET\estrutura\versão\aspnet_regbrowsers.exe ferramenta ou você deve programaticamente recompilá-lo usando o BrowserCapabilitiesCodeGenerator classe.
Observação: |
---|
Usando o browserCaps elemento no arquivo Web.config para definir navegadores é preterido no .NET estrutura 2.0, mas ainda tem suporte. Os dados desse elemento serão mesclados com as informações de arquivos de definição de navegador. |
Quando um navegador solicita ao seu aplicativo, os recursos do navegador são armazenados no Browser propriedade. A identidade do navegador é armazenada na UserAgent propriedade. Os controles do servidor Web do ASP.NET consultar a lista de recursos para tomar decisões sobre como adaptar o comportamento de controles apropriadamente para diferentes navegadores.
Recursos
Para obter uma lista de recursos do navegador com fortemente tipado, ver as propriedades do HttpCapabilitiesBase classe. Essas propriedades, use camel casing nos arquivos de definição de navegador. Por exemplo, se você deseja especificar o BackgroundSounds recurso em seu arquivo de definição de navegador, digite-sistema autônomo backgroundSounds.
Você também pode definir seus próprios recursos.
Um aplicativo Web Web pode recuperar valores de capacidade do HttpBrowserCapabilities objeto em uma das seguintes duas maneiras:
Acessando o dicionário de recursos. Você pode usar esse método para recursos personalizados.
Por exemplo, para obter o valor da capacidade de ECMAScript (JavaScript) de navegador do cliente corrente, você pode usar o código a seguir:
String cap_javascript = Request.Browser["javascript"];
Chamando uma propriedade com rigidez de tipos que encapsula um recurso.
Por exemplo, para obter o valor da capacidade de ECMAScript de navegador do cliente corrente, você pode usar o código a seguir:
String cap_javascript = Request.JavaScript;
Configuração padrão
O .NET estrutura vem com arquivos de definição de navegador predefinido no %SystemRoot%\Microsoft.NET\estrutura\ versão \CONFIG\Browsers diretório. Você pode criar o nível de aplicativo navegador arquivos de definição na pasta App_Browsers do seu aplicativo. Para obter informações sobre pastas especiais do ASP.NET, consulte Layout de Site Web do ASP.NET.
O exemplo de código a seguir é um trecho do arquivo Generic.navegador no %SystemRoot%\Microsoft.NET\estrutura\ versão \CONFIG\Browsers diretório.
Observação: |
---|
Não altere os arquivos de definição de navegador existentes no %SystemRoot%\Microsoft.NET\estrutura\ versão \CONFIG\Browsers diretório. Eles são mantidos pelo .NET estrutura. |
<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>
O exemplo de código a seguir é um trecho do arquivo WebTV.navegador no %SystemRoot%\Microsoft.NET\estrutura\ versão \CONFIG\Browsers diretório.
<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>
Exemplo
O exemplo de código a seguir é um arquivo .navegador vazio que você pode criar. 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 |
|
Configuração de membros |
|
Locais configuráveis |
Diretório de navegadores de nível de raiz da computador Diretório App_Browsers nível do aplicativo |
Requisitos |
Serviços de Informações da Internet (Serviços de Informações da Internet) 5.0, Serviços de Informações da Internet 5.1 ou Serviços de Informações da Internet 6.0 .NET Framework versão 2,0 Visual Studio 2005 |
Consulte também
Tarefas
Como: Detectar tipos de navegador em páginas da Web do ASP.NET
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
Visão geral sobre Desenvolvimento de Aplicativos para Dispositivos ASP.NET Móveis
Referência
HttpCapabilitiesSectionHandler
deviceFilters elemento (esquema configurações ASP.NET)
mobileControls elemento (esquema configurações ASP.NET)
Elemento browserCaps (Esquema de configurações do ASP.NET)