HttpListenerElement Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje Element HttpListener v konfiguračním souboru. Tato třída se nemůže dědit.
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
- Dědičnost
Poznámky
Tato třída odpovídá elementu <konfigurace httpListener> Element (Nastavení sítě). Tato třída poskytuje programový přístup k informacím, které lze uložit do konfiguračních souborů.
Vlastnost UnescapeRequestUrl označuje, jestli HttpListener používá nezpracovaný identifikátor URI místo převedeného identifikátoru URI, kde jsou převedeny hodnoty zakódované v procentech a jsou podniknuty další kroky normalizace.
HttpListener Když instance přijme požadavek prostřednictvím http.sys
služby, vytvoří instanci řetězce identifikátoru URI poskytnutého službou http.sys
a zpřístupní ji jako HttpListenerRequest.Url vlastnost.
Služba http.sys
zveřejňuje dva řetězce identifikátoru URI požadavku:
Nezpracovaný identifikátor URI
Převedený identifikátor URI
Nezpracovaný identifikátor URI je System.Uri uvedený v řádku požadavku HTTP:
GET /path/
Host: www.contoso.com
Nezpracovaný identifikátor URI, který http.sys
pro výše uvedený požadavek poskytuje, je /path/. Představuje řetězec následující za příkazem HTTP, který byl odeslán přes síť.
Služba http.sys
vytvoří převedený identifikátor URI z informací uvedených v požadavku pomocí identifikátoru URI zadaného na řádku požadavku HTTP a hlavičky hostitele k určení serveru původu, na který se má požadavek předat. To se provádí porovnáním informací z požadavku se sadou registrovaných předpon URI. Dokumentace k sadě HTTP Server SDK označuje tento převedený identifikátor URI jako strukturu HTTP_COOKED_URL .
Aby bylo možné porovnat požadavek s registrovanými předponami identifikátoru URI, je potřeba provést určitou normalizaci požadavku. U výše uvedeného vzorku by převedený identifikátor URI vypadal takto:
http://www.contoso.com/path/
Služba http.sys
zkombinuje Uri.Host hodnotu vlastnosti a řetězec v řádku požadavku a vytvoří převedený identifikátor URI. Kromě toho http.sys
a System.Uri třída také proveďte následující akce:
Zruší uchycení všech procent zakódovaných hodnot.
Převede procenta kódované znaky, které nejsou ASCII, na reprezentaci znaků UTF-16. Všimněte si, že znaky UTF-8 a ANSI/DBCS jsou podporovány i znaky Unicode (kódování Unicode ve formátu %uXXXX).
Provede další kroky normalizace, například kompresi cesty.
Vzhledem k tomu, že požadavek neobsahuje žádné informace o kódování použitém pro hodnoty zakódované v procentech, nemusí být možné určit správné kódování pouze parsováním hodnot zakódovaných v procentech.
Proto http.sys
poskytuje dva klíče registru pro úpravu procesu:
Klíč registru | Výchozí hodnota | Description |
---|---|---|
EnableNonUTF8 | 1 | Pokud je nula, http.sys přijímá pouze adresy URL s kódováním UTF-8.Pokud není nula, http.sys přijímá v požadavcích také adresy URL kódované ANSI nebo DBCS. |
FavorUTF8 | 1 | Pokud není nula, http.sys vždy se nejprve pokusí dekódovat adresu URL jako UTF-8. Pokud se převod nezdaří a EnableNonUTF8 není nulová, Http.sys pak se ji pokusí dekódovat jako ANSI nebo DBCS.Pokud je nula (a EnableNonUTF8 je nenulová), http.sys pokusí se ji dekódovat jako ANSI nebo DBCS. Pokud to nebude úspěšné, pokusí se o převod UTF-8. |
Když HttpListener obdrží požadavek, použije převedený identifikátor URI z jako http.sys
vstup do Url vlastnosti.
Kromě znaků a čísel v identifikátorech URI je potřeba mít podpůrné znaky. Příkladem je následující identifikátor URI, který slouží k načtení informací o zákazníkovi pro číslo zákazníka "1/3812":
http://www.contoso.com/Customer('1%2F3812')/
Všimněte si lomítka zakódovaného v procentech v identifikátoru URI (%2F). To je nezbytné, protože v tomto případě lomítko představuje data, nikoli oddělovač cesty.
Předání řetězce konstruktoru URI povede k následujícímu identifikátoru URI:
http://www.contoso.com/Customer('1/3812')/
Rozdělení cesty na její segmenty by vedlo k následujícím prvkům:
Customer('1
3812')
Toto není záměr odesílatele žádosti.
UnescapeRequestUrl Pokud je vlastnost nastavená na false, pak když HttpListener obdrží požadavek, použije nezpracovaný identifikátor URI místo převedeného identifikátoru URI z http.sys
jako vstup na Url vlastnost.
Konstruktory
HttpListenerElement() |
Inicializuje novou instanci HttpListenerElement třídy. |
Vlastnosti
CurrentConfiguration |
Získá odkaz na instanci nejvyšší úrovně Configuration , která představuje hierarchii konfigurace, do které aktuální ConfigurationElement instance patří. (Zděděno od ConfigurationElement) |
ElementInformation |
Získá ElementInformation objekt, který obsahuje přizpůsobitelné informace a funkce objektu ConfigurationElement . (Zděděno od ConfigurationElement) |
ElementProperty |
ConfigurationElementProperty Získá objekt, který představuje ConfigurationElement samotný objekt. (Zděděno od ConfigurationElement) |
EvaluationContext |
ContextInformation Získá objekt pro ConfigurationElement objekt. (Zděděno od ConfigurationElement) |
HasContext |
Získá hodnotu, která označuje, zda CurrentConfiguration je |
Item[ConfigurationProperty] |
Získá nebo nastaví vlastnost nebo atribut tohoto elementu konfigurace. (Zděděno od ConfigurationElement) |
Item[String] |
Získá nebo nastaví vlastnost, atribut nebo podřízený prvek tohoto elementu konfigurace. (Zděděno od ConfigurationElement) |
LockAllAttributesExcept |
Získá kolekci uzamčených atributů. (Zděděno od ConfigurationElement) |
LockAllElementsExcept |
Získá kolekci uzamčených prvků. (Zděděno od ConfigurationElement) |
LockAttributes |
Získá kolekci uzamčených atributů. (Zděděno od ConfigurationElement) |
LockElements |
Získá kolekci uzamčených prvků. (Zděděno od ConfigurationElement) |
LockItem |
Získá nebo nastaví hodnotu označující, zda je prvek uzamčen. (Zděděno od ConfigurationElement) |
Properties |
Získá kolekci vlastností. (Zděděno od ConfigurationElement) |
Timeouts |
Získá výchozí časový limit elementy použité pro HttpListener objekt. |
UnescapeRequestUrl |
Získá hodnotu, která označuje, pokud HttpListener používá nezpracovaný unescaped identifikátor URI místo převedený identifikátor URI. |
Metody
DeserializeElement(XmlReader, Boolean) |
Načte XML z konfiguračního souboru. (Zděděno od ConfigurationElement) |
Equals(Object) |
Porovná aktuální ConfigurationElement instanci se zadaným objektem. (Zděděno od ConfigurationElement) |
GetHashCode() |
Získá jedinečnou hodnotu představující aktuální ConfigurationElement instanci. (Zděděno od ConfigurationElement) |
GetTransformedAssemblyString(String) |
Vrátí transformovanou verzi zadaného názvu sestavení. (Zděděno od ConfigurationElement) |
GetTransformedTypeString(String) |
Vrátí transformovanou verzi zadaného názvu typu. (Zděděno od ConfigurationElement) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
Init() |
ConfigurationElement Nastaví objekt do počátečního stavu. (Zděděno od ConfigurationElement) |
InitializeDefault() |
Slouží k inicializaci výchozí sady hodnot objektu ConfigurationElement . (Zděděno od ConfigurationElement) |
IsModified() |
Určuje, zda byl tento konfigurační prvek změněn od posledního uložení nebo načtení, když byl implementován v odvozené třídě. (Zděděno od ConfigurationElement) |
IsReadOnly() |
Získá hodnotu označující, zda ConfigurationElement objekt je jen pro čtení. (Zděděno od ConfigurationElement) |
ListErrors(IList) |
Přidá do předaného seznamu chyby neplatné vlastnosti v tomto ConfigurationElement objektu a ve všech dílčích pomůcecích. (Zděděno od ConfigurationElement) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Získá hodnotu označující, zda je zjištěn neznámý atribut během deserializace. (Zděděno od ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Získá hodnotu označující, zda neznámý prvek je nalezen během deserializace. (Zděděno od ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Vyvolá výjimku, pokud není nalezena požadovaná vlastnost. (Zděděno od ConfigurationElement) |
PostDeserialize() |
Volá se po deserializaci. (Zděděno od ConfigurationElement) |
PreSerialize(XmlWriter) |
Volá se před serializací. (Zděděno od ConfigurationElement) |
Reset(ConfigurationElement) |
Resetuje vnitřní stav objektu ConfigurationElement , včetně zámků a kolekcí vlastností. (Zděděno od ConfigurationElement) |
ResetModified() |
Resetuje hodnotu IsModified() metody na |
SerializeElement(XmlWriter, Boolean) |
Zapíše obsah tohoto konfiguračního prvku do konfiguračního souboru při implementaci v odvozené třídě. (Zděděno od ConfigurationElement) |
SerializeToXmlElement(XmlWriter, String) |
Zapíše vnější značky tohoto elementu konfigurace do konfiguračního souboru při implementaci v odvozené třídě. (Zděděno od ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Nastaví vlastnost na zadanou hodnotu. (Zděděno od ConfigurationElement) |
SetReadOnly() |
IsReadOnly() Nastaví vlastnost objektu ConfigurationElement a všech dílčích elementů. (Zděděno od ConfigurationElement) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Upraví objekt tak, ConfigurationElement aby odebral všechny hodnoty, které by neměly být uloženy. (Zděděno od ConfigurationElement) |