HttpListenerElement Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 é |
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 |
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) |