Partilhar via


HttpListenerElement Classe

Definição

Representa o elemento HttpListener no arquivo de configuração. Essa classe não pode ser herdada.

public ref class HttpListenerElement sealed : System::Configuration::ConfigurationElement
public sealed class HttpListenerElement : System.Configuration.ConfigurationElement
type HttpListenerElement = class
    inherit ConfigurationElement
Public NotInheritable Class HttpListenerElement
Inherits ConfigurationElement
Herança
HttpListenerElement

Comentários

Essa classe corresponde ao <elemento de configuração elemento httpListener> (Configurações de Rede). Essa classe fornece acesso programático a informações que podem ser armazenadas em arquivos de configuração.

A UnescapeRequestUrl propriedade indica se HttpListener usa o URI bruto sem escape em vez do URI convertido em que quaisquer valores codificados por porcentagem são convertidos e outras etapas de normalização são executadas.

Quando uma instância HttpListener recebe uma solicitação por meio do serviço http.sys, ela cria uma instância da cadeia de caracteres de URI fornecida por http.sys e a expõe como a propriedade HttpListenerRequest.Url.

O serviço http.sys expõe duas cadeias de caracteres de URI de solicitação:

  • URI bruto

  • URI convertido

O URI bruto é o System.Uri fornecido na linha de solicitação de uma solicitação HTTP:

GET /path/

Host: www.contoso.com

O URI bruto fornecido por http.sys para solicitação mencionada acima é "/path/". Isso representa a cadeia de caracteres seguindo o verbo HTTP quando foi enviada pela rede.

O serviço http.sys cria um URI convertido das informações fornecidas na solicitação usando o URI fornecido na linha de solicitação HTTP e o cabeçalho de host para determinar o servidor de origem para o qual a solicitação deve ser encaminhada. Isso é feito comparando as informações da solicitação com um conjunto de prefixos do URI registrados. A documentação do SDK do Servidor HTTP refere-se a esse URI convertido como a estrutura de HTTP_COOKED_URL .

Para comparar a solicitação com prefixos de URI registrados, é necessário fazer alguma normalização com a solicitação. Para o exemplo acima, o URI convertido seria o seguinte:

http://www.contoso.com/path/

O serviço http.sys combina o valor da propriedade Uri.Host e a cadeia de caracteres na linha de solicitação para criar um URI convertido. Além disso, http.sys e a System.Uri classe também fazem o seguinte:

  • Cancela o escape de todos os valores codificados por percentual.

  • Converte caracteres não ASCII codificados por percentual em uma representação de caracteres UTF-16. Observe que há suporte para caracteres UTF-8 e ANSI/DBCS, bem como caracteres Unicode (codificação Unicode usando o formato %uXXXX).

  • Executa outras etapas de normalização, como compactação de caminho.

Como a solicitação não contém informações sobre a codificação usada para valores codificados por percentual, talvez não seja possível determinar a codificação correta apenas analisando os valores codificados por percentual.

Portanto, http.sys fornece duas chaves do Registro para modificar o processo:

Chave do Registro Valor padrão Descrição
EnableNonUTF8 1 Se for zero, http.sys aceitará apenas URLs codificadas em UTF-8.

Se não for zero, http.sys também aceitará URLs codificadas em ANSI ou codificadas em DBCS em solicitações.
FavorUTF8 1 Se não for zero, http.sys sempre tentará decodificar uma URL como UTF-8 primeiro; se essa conversão falhar e EnableNonUTF8 não for zero, Http.sys tentará decodificá-la como ANSI ou DBCS.

Se zero (e EnableNonUTF8 não for zero), http.sys tentará decodificá-lo como ANSI ou DBCS; se isso não for bem-sucedido, ele tentará uma conversão UTF-8.

Quando HttpListener recebe uma solicitação, ela usa o URI convertido de http.sys como entrada para a propriedade Url.

Há a necessidade de dar suporte a caracteres além de caracteres e números em URIs. Um exemplo é o seguinte URI, que é usado para recuperar informações do cliente para o número do cliente "1/3812":

http://www.contoso.com/Customer('1%2F3812')/

Observe a barra codificada por percentual no Uri (%2F). Isso é necessário, pois, nesse caso, o caractere de barra representa dados, não um delimitador de caminho.

Passar a cadeia de caracteres para o construtor Uri levará ao seguinte URI:

http://www.contoso.com/Customer('1/3812')/

Dividir o caminho em seus segmentos resultaria nos seguintes elementos:

Customer('1

3812')

Essa não é a intenção do remetente da solicitação.

Se a UnescapeRequestUrl propriedade for definida como false, quando o HttpListener receber uma solicitação, ela usará o URI bruto em vez do URI convertido de http.sys como entrada para a Url propriedade .

Construtores

HttpListenerElement()

Inicializa uma nova instância da classe HttpListenerElement.

Propriedades

CurrentConfiguration

Obtém uma referência para a instância Configuration de nível superior que representa a hierarquia de configuração à qual a instância atual ConfigurationElement pertence.

(Herdado de ConfigurationElement)
ElementInformation

Obtém um objeto ElementInformation que contém as informações não personalizáveis e a funcionalidade do objeto ConfigurationElement.

(Herdado de ConfigurationElement)
ElementProperty

Obtém o objeto ConfigurationElementProperty que representa o próprio objeto ConfigurationElement.

(Herdado de ConfigurationElement)
EvaluationContext

Obtém o objeto ContextInformation para o objeto ConfigurationElement.

(Herdado de ConfigurationElement)
HasContext

Obtém um valor que indica se a propriedade CurrentConfiguration é null.

(Herdado de ConfigurationElement)
Item[ConfigurationProperty]

Obtém ou define uma propriedade ou um atributo desse elemento de configuração.

(Herdado de ConfigurationElement)
Item[String]

Obtém ou define uma propriedade, atributo ou elemento filho desse elemento de configuração.

(Herdado de ConfigurationElement)
LockAllAttributesExcept

Obtém a coleção de atributos bloqueados.

(Herdado de ConfigurationElement)
LockAllElementsExcept

Obtém a coleção de elementos bloqueados.

(Herdado de ConfigurationElement)
LockAttributes

Obtém a coleção de atributos bloqueados.

(Herdado de ConfigurationElement)
LockElements

Obtém a coleção de elementos bloqueados.

(Herdado de ConfigurationElement)
LockItem

Obtém ou define um valor que indica se o elemento está bloqueado.

(Herdado de ConfigurationElement)
Properties

Obtém a coleção de propriedades.

(Herdado de ConfigurationElement)
Timeouts

Obtém os elementos de tempo limite padrão usados para um objeto HttpListener.

UnescapeRequestUrl

Obtém um valor que indica se HttpListener usa o URI sem escape bruto em vez do URI convertido.

Métodos

DeserializeElement(XmlReader, Boolean)

Lê o XML do arquivo de configuração.

(Herdado de ConfigurationElement)
Equals(Object)

Compara a instância ConfigurationElement atual com o objeto especificado.

(Herdado de ConfigurationElement)
GetHashCode()

Obtém um valor exclusivo que representa a instância ConfigurationElement atual.

(Herdado de ConfigurationElement)
GetTransformedAssemblyString(String)

Retorna a versão transformada do nome do assembly especificado.

(Herdado de ConfigurationElement)
GetTransformedTypeString(String)

Retorna a versão transformada do nome do tipo especificado.

(Herdado de ConfigurationElement)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Init()

Define o objeto ConfigurationElement para seu estado inicial.

(Herdado de ConfigurationElement)
InitializeDefault()

Usado para inicializar um conjunto padrão de valores para o objeto ConfigurationElement.

(Herdado de ConfigurationElement)
IsModified()

Indica se este elemento de configuração foi modificado desde a última vez em que foi salvo ou carregado quando implementado em uma classe derivada.

(Herdado de ConfigurationElement)
IsReadOnly()

Obtém um valor que indica se o objeto ConfigurationElement é somente leitura.

(Herdado de ConfigurationElement)
ListErrors(IList)

Adiciona os erros de propriedade inválida deste objeto ConfigurationElement e de todos os subelementos à lista passada.

(Herdado de ConfigurationElement)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnDeserializeUnrecognizedAttribute(String, String)

Obtém um valor que indica se um atributo desconhecido é encontrado durante a desserialização.

(Herdado de ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Obtém um valor que indica se um elemento desconhecido é encontrado durante a desserialização.

(Herdado de ConfigurationElement)
OnRequiredPropertyNotFound(String)

Gera uma exceção quando uma propriedade necessária não é encontrada.

(Herdado de ConfigurationElement)
PostDeserialize()

Chamado depois da desserialização.

(Herdado de ConfigurationElement)
PreSerialize(XmlWriter)

Chamado antes da serialização.

(Herdado de ConfigurationElement)
Reset(ConfigurationElement)

Redefine o estado interno do objeto ConfigurationElement, incluindo os bloqueios e as coleções de propriedades.

(Herdado de ConfigurationElement)
ResetModified()

Redefine o valor do método IsModified() para false quando implementado em uma classe derivada.

(Herdado de ConfigurationElement)
SerializeElement(XmlWriter, Boolean)

Grava o conteúdo desse elemento de configuração no arquivo de configuração quando implementado em uma classe derivada.

(Herdado de ConfigurationElement)
SerializeToXmlElement(XmlWriter, String)

Grava as marcas externas desse elemento de configuração no arquivo de configuração quando implementado em uma classe derivada.

(Herdado de ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Define uma propriedade para o valor especificado.

(Herdado de ConfigurationElement)
SetReadOnly()

Define a propriedade IsReadOnly() para o objeto ConfigurationElement e para todos os subelementos.

(Herdado de ConfigurationElement)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifica o objeto ConfigurationElement para remover todos os valores que não devem ser salvos.

(Herdado de ConfigurationElement)

Aplica-se a

Confira também