HttpListenerElement Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje element HttpListener w pliku konfiguracji. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
Uwagi
Ta klasa odpowiada <elementowi konfiguracji httpListener> (Ustawienia sieciowe). Ta klasa zapewnia programowy dostęp do informacji, które mogą być przechowywane w plikach konfiguracji.
Właściwość UnescapeRequestUrl wskazuje, czy HttpListener używa nieprzetworzonego identyfikatora URI niezasadzonego zamiast przekonwertowanego identyfikatora URI, w którym są konwertowane wartości zakodowane procentowo, a inne kroki normalizacji są wykonywane.
HttpListener Gdy wystąpienie odbiera żądanie za pośrednictwem http.sys
usługi, tworzy wystąpienie ciągu identyfikatora URI dostarczonego przez http.sys
usługę i uwidacznia je jako HttpListenerRequest.Url właściwość.
Usługa http.sys
uwidacznia dwa ciągi identyfikatora URI żądania:
Identyfikator URI nieprzetworzonego
Przekonwertowany identyfikator URI
Pierwotny identyfikator URI jest System.Uri podany w wierszu żądania żądania HTTP:
GET /path/
Host: www.contoso.com
Nieprzetworzonego identyfikatora URI podanego dla http.sys
powyższego żądania to "/path/". Reprezentuje to ciąg po czasowniku HTTP, który został wysłany przez sieć.
Usługa http.sys
tworzy przekonwertowany identyfikator URI z informacji podanych w żądaniu przy użyciu identyfikatora URI podanego w wierszu żądania HTTP i nagłówka hosta w celu określenia serwera pochodzenia, do którego należy przesłać żądanie. Odbywa się to przez porównanie informacji z żądania z zestawem zarejestrowanych prefiksów identyfikatorów URI. Dokumentacja zestawu SDK serwera HTTP odnosi się do tego przekonwertowanego identyfikatora URI jako struktury HTTP_COOKED_URL .
Aby można było porównać żądanie z zarejestrowanymi prefiksami identyfikatorów URI, należy wykonać normalizację żądania. Dla przykładu powyżej przekonwertowanego identyfikatora URI będzie następujący:
http://www.contoso.com/path/
Usługa http.sys
łączy Uri.Host wartość właściwości i ciąg w wierszu żądania, aby utworzyć przekonwertowany identyfikator URI. Ponadto http.sys
klasa wykonuje System.Uri również następujące czynności:
Usuwa wszystkie wartości zakodowane procentowo.
Konwertuje znaki niekodowane procentowo na reprezentację znaków UTF-16. Należy pamiętać, że znaki UTF-8 i ANSI/DBCS są obsługiwane, a także znaki Unicode (kodowanie Unicode przy użyciu formatu %uXXXX).
Wykonuje inne kroki normalizacji, takie jak kompresja ścieżki.
Ponieważ żądanie nie zawiera żadnych informacji o kodowaniu używanym dla wartości zakodowanych procentowo, może nie być możliwe określenie poprawnego kodowania tylko przez przeanalizowanie wartości zakodowanych procentowo.
W związku z tym http.sys
udostępnia dwa klucze rejestru do modyfikowania procesu:
Klucz rejestru | Wartość domyślna | Opis |
---|---|---|
EnableNonUTF8 | 1 | Jeśli zero, http.sys akceptuje tylko adresy URL zakodowane w formacie UTF-8.Jeśli nie ma wartości zero, http.sys akceptuje również adresy URL zakodowane w formacie ANSI lub DBCS w żądaniach. |
FavorUTF8 | 1 | Jeśli nie ma wartości zero, http.sys zawsze próbuje zdekodować adres URL jako utF-8. Jeśli konwersja zakończy się niepowodzeniem, a funkcja EnableNonUTF8 nie jest zerowa, Http.sys następnie spróbuje zdekodować go jako ANSI lub DBCS.Jeśli zero (i EnableNonUTF8 jest niezerowe), http.sys próbuje zdekodować go jako ANSI lub DBCS; jeśli to nie powiedzie się, spróbuje konwersji UTF-8. |
Gdy HttpListener odbiera żądanie, używa przekonwertowanego identyfikatora URI jako http.sys
danych wejściowych Url do właściwości.
Istnieje potrzeba obsługi znaków oprócz znaków i liczb w identyfikatorach URI. Przykładem jest następujący identyfikator URI, który służy do pobierania informacji o kliencie dla numeru klienta "1/3812":
http://www.contoso.com/Customer('1%2F3812')/
Zanotuj ukośnik zakodowany procentowo w identyfikatorze URI (%2F). Jest to konieczne, ponieważ w tym przypadku znak ukośnika reprezentuje dane, a nie ogranicznik ścieżki.
Przekazanie ciągu do konstruktora identyfikatora URI doprowadzi do następującego identyfikatora URI:
http://www.contoso.com/Customer('1/3812')/
Podzielenie ścieżki na jej segmenty spowodowałoby następujące elementy:
Customer('1
3812')
Nie jest to intencja nadawcy żądania.
UnescapeRequestUrl Jeśli właściwość jest ustawiona na wartość false, gdy HttpListener odbiera żądanie, używa nieprzetworzonego identyfikatora URI zamiast przekonwertowanego identyfikatora URI jako http.sys
danych wejściowych do Url właściwości.
Konstruktory
HttpListenerElement() |
Inicjuje nowe wystąpienie klasy HttpListenerElement. |
Właściwości
CurrentConfiguration |
Pobiera odwołanie do wystąpienia najwyższego poziomu Configuration , które reprezentuje hierarchię konfiguracji, do którego należy bieżące ConfigurationElement wystąpienie. (Odziedziczone po ConfigurationElement) |
ElementInformation |
ElementInformation Pobiera obiekt, który zawiera niezstosowalne informacje i funkcje ConfigurationElement obiektu. (Odziedziczone po ConfigurationElement) |
ElementProperty |
ConfigurationElementProperty Pobiera obiekt reprezentujący ConfigurationElement sam obiekt. (Odziedziczone po ConfigurationElement) |
EvaluationContext |
ContextInformation Pobiera obiekt dla ConfigurationElement obiektu. (Odziedziczone po ConfigurationElement) |
HasContext |
Pobiera wartość wskazującą, czy CurrentConfiguration właściwość to |
Item[ConfigurationProperty] |
Pobiera lub ustawia właściwość lub atrybut tego elementu konfiguracji. (Odziedziczone po ConfigurationElement) |
Item[String] |
Pobiera lub ustawia właściwość, atrybut lub element podrzędny tego elementu konfiguracji. (Odziedziczone po ConfigurationElement) |
LockAllAttributesExcept |
Pobiera kolekcję zablokowanych atrybutów. (Odziedziczone po ConfigurationElement) |
LockAllElementsExcept |
Pobiera kolekcję zablokowanych elementów. (Odziedziczone po ConfigurationElement) |
LockAttributes |
Pobiera kolekcję zablokowanych atrybutów. (Odziedziczone po ConfigurationElement) |
LockElements |
Pobiera kolekcję zablokowanych elementów. (Odziedziczone po ConfigurationElement) |
LockItem |
Pobiera lub ustawia wartość wskazującą, czy element jest zablokowany. (Odziedziczone po ConfigurationElement) |
Properties |
Pobiera kolekcję właściwości. (Odziedziczone po ConfigurationElement) |
Timeouts |
Pobiera domyślne elementy limitu czasu używane dla HttpListener obiektu. |
UnescapeRequestUrl |
Pobiera wartość wskazującą, czy HttpListener używa nieprzetworzonego identyfikatora URI, a nie przekonwertowanego identyfikatora URI. |
Metody
DeserializeElement(XmlReader, Boolean) |
Odczytuje kod XML z pliku konfiguracji. (Odziedziczone po ConfigurationElement) |
Equals(Object) |
Porównuje bieżące ConfigurationElement wystąpienie z określonym obiektem. (Odziedziczone po ConfigurationElement) |
GetHashCode() |
Pobiera unikatową wartość reprezentującą bieżące ConfigurationElement wystąpienie. (Odziedziczone po ConfigurationElement) |
GetTransformedAssemblyString(String) |
Zwraca przekształconą wersję określonej nazwy zestawu. (Odziedziczone po ConfigurationElement) |
GetTransformedTypeString(String) |
Zwraca przekształconą wersję określonej nazwy typu. (Odziedziczone po ConfigurationElement) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
Init() |
ConfigurationElement Ustawia obiekt na stan początkowy. (Odziedziczone po ConfigurationElement) |
InitializeDefault() |
Służy do inicjowania domyślnego zestawu wartości dla ConfigurationElement obiektu. (Odziedziczone po ConfigurationElement) |
IsModified() |
Wskazuje, czy ten element konfiguracji został zmodyfikowany od czasu ostatniego zapisania lub załadowania, gdy został zaimplementowany w klasie pochodnej. (Odziedziczone po ConfigurationElement) |
IsReadOnly() |
Pobiera wartość wskazującą, czy ConfigurationElement obiekt jest tylko do odczytu. (Odziedziczone po ConfigurationElement) |
ListErrors(IList) |
Dodaje błędy nieprawidłowej właściwości w tym ConfigurationElement obiekcie i we wszystkich podelementach do przekazanej listy. (Odziedziczone po ConfigurationElement) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany atrybut. (Odziedziczone po ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany element. (Odziedziczone po ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Zgłasza wyjątek, gdy nie znaleziono wymaganej właściwości. (Odziedziczone po ConfigurationElement) |
PostDeserialize() |
Wywoływana po deserializacji. (Odziedziczone po ConfigurationElement) |
PreSerialize(XmlWriter) |
Wywoływane przed serializacji. (Odziedziczone po ConfigurationElement) |
Reset(ConfigurationElement) |
Resetuje stan ConfigurationElement wewnętrzny obiektu, w tym blokady i kolekcje właściwości. (Odziedziczone po ConfigurationElement) |
ResetModified() |
Resetuje wartość IsModified() metody w |
SerializeElement(XmlWriter, Boolean) |
Zapisuje zawartość tego elementu konfiguracji do pliku konfiguracji po zaimplementowaniu w klasie pochodnej. (Odziedziczone po ConfigurationElement) |
SerializeToXmlElement(XmlWriter, String) |
Zapisuje zewnętrzne tagi tego elementu konfiguracji do pliku konfiguracji po zaimplementowaniu w klasie pochodnej. (Odziedziczone po ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Ustawia właściwość na określoną wartość. (Odziedziczone po ConfigurationElement) |
SetReadOnly() |
IsReadOnly() Ustawia właściwość obiektu ConfigurationElement i wszystkich podelementów. (Odziedziczone po ConfigurationElement) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Modyfikuje obiekt, ConfigurationElement aby usunąć wszystkie wartości, które nie powinny być zapisywane. (Odziedziczone po ConfigurationElement) |