HttpListenerElement Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente l'élément HttpListener dans le fichier de configuration. Cette classe ne peut pas être héritée.
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
- Héritage
Remarques
Cette classe correspond à l’élément <de configuration httpListener> Element (Network Settings). Cette classe fournit un accès programmatique aux informations qui peuvent être stockées dans des fichiers de configuration.
La UnescapeRequestUrl propriété indique si HttpListener utilise l’URI brut sans séquence d’échappement au lieu de l’URI converti où toutes les valeurs encodées en pourcentage sont converties et d’autres étapes de normalisation sont effectuées.
Lorsqu’une instance HttpListener reçoit une requête via le service http.sys
, elle crée une instance de la chaîne d’URI fournie par http.sys
et l’expose en tant que propriété HttpListenerRequest.Url.
Le service http.sys
expose deux chaînes d’URI de requête :
URI brut
URI converti
L’URI brut est le System.Uri fourni dans la ligne de requête d’une requête HTTP :
GET /path/
Host: www.contoso.com
L’URI brut fourni par http.sys
pour la requête mentionnée ci-dessus est « /path/ ». Cela représente la chaîne suivant le verbe HTTP tel qu’il a été envoyé sur le réseau.
Le service http.sys
crée un URI converti à partir des informations fournies dans la requête à l’aide de l’URI fourni dans la ligne de requête HTTP et de l’en-tête hôte pour déterminer le serveur d’origine auquel la requête doit être transférée. Pour ce faire, les informations de la requête sont comparées à un ensemble de préfixes d’URI inscrits. La documentation du Kit de développement logiciel (SDK) du serveur HTTP fait référence à cet URI converti en tant que structure HTTP_COOKED_URL .
Pour pouvoir comparer la requête avec les préfixes d’URI inscrits, un travail de normalisation doit être effectué. Pour l’exemple ci-dessus, l’URI converti est le suivant :
http://www.contoso.com/path/
Le service http.sys
combine la valeur de propriété Uri.Host et la chaîne de la ligne de requête pour créer un URI converti. En outre, http.sys
et la System.Uri classe effectuent également les opérations suivantes :
Annule l’échappement de toutes les valeurs encodées en pourcentage.
Convertit les caractères non ASCII encodés en pourcentage en représentation de caractères UTF-16. Notez que les caractères UTF-8 et ANSI/DBCS sont pris en charge ainsi que les caractères Unicode (encodage Unicode à l’aide du format %uXXXX).
Exécute d’autres étapes de normalisation, comme la compression de chemin d’accès.
Étant donné que la requête ne contient aucune information sur l’encodage utilisé pour les valeurs encodées en pourcentage, il peut être impossible de déterminer l’encodage correct en analysant les valeurs encodées en pourcentage.
Par conséquent http.sys
fournit deux clés de Registre pour modifier le processus :
Clé de Registre | Valeur par défaut | Description |
---|---|---|
EnableNonUTF8 | 1 | Si la valeur est zéro, http.sys accepte uniquement les URL encodées en UTF-8.Si la valeur est différente de zéro, http.sys accepte également les URL encodées en ANSI ou encodées en DBCS dans les requêtes. |
FavorUTF8 | 1 | Si la valeur est différente de zéro, http.sys tente toujours de décoder d’abord une URL en UTF-8 ; si cette conversion échoue et si EnableNonUTF8 est différent de zéro, Http.sys tente de le décoder en ANSI ou en DBCS.Si la valeur est zéro (et EnableNonUTF8 est différent de zéro), http.sys tente de la décoder en ANSI ou en DBCS ; en cas d’échec, il tente une conversion UTF-8. |
Lorsque HttpListener reçoit une requête, il utilise l’URI converti en http.sys
comme entrée dans la propriété Url.
Il est nécessaire de prendre en charge certains caractères en plus des caractères et des nombres dans les URI. L’exemple d’URI suivant est utilisé pour récupérer les informations client pour le numéro de client « 1/3812 » :
http://www.contoso.com/Customer('1%2F3812')/
Notez la barre oblique encodée en pourcentage dans l’URI (%2F). Cela est nécessaire, car dans ce cas, le caractère de barre oblique représente des données et non un délimiteur de chemin d’accès.
Le passage de la chaîne au constructeur d’URI entraîne l’URI suivant :
http://www.contoso.com/Customer('1/3812')/
Le fractionnement du chemin dans ses segments produit les éléments suivants :
Customer('1
3812')
Cela ne reflète pas l’intention de l’expéditeur de la requête.
Si la propriété a la UnescapeRequestUrl valeur false, lorsque le HttpListener reçoit une requête, il utilise l’URI brut au lieu de l’URI converti de http.sys
comme entrée à la Url propriété.
Constructeurs
HttpListenerElement() |
Initialise une nouvelle instance de la classe HttpListenerElement. |
Propriétés
CurrentConfiguration |
Obtient une référence à l'instance Configuration de niveau supérieur qui représente la hiérarchie de configuration à laquelle l'instance ConfigurationElement actuelle appartient. (Hérité de ConfigurationElement) |
ElementInformation |
Obtient un objet ElementInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationElement. (Hérité de ConfigurationElement) |
ElementProperty |
Obtient l'objet ConfigurationElementProperty qui représente l'objet ConfigurationElement lui-même. (Hérité de ConfigurationElement) |
EvaluationContext |
Obtient l'objet ContextInformation pour l'objet ConfigurationElement. (Hérité de ConfigurationElement) |
HasContext |
Obtient une valeur qui indique si la propriété CurrentConfiguration a la valeur |
Item[ConfigurationProperty] |
Obtient ou définit une propriété ou un attribut de cet élément de configuration. (Hérité de ConfigurationElement) |
Item[String] |
Obtient ou définit une propriété, un attribut ou un élément enfant de cet élément de configuration. (Hérité de ConfigurationElement) |
LockAllAttributesExcept |
Obtient la collection d'attributs verrouillés. (Hérité de ConfigurationElement) |
LockAllElementsExcept |
Obtient la collection d'éléments verrouillés. (Hérité de ConfigurationElement) |
LockAttributes |
Obtient la collection d'attributs verrouillés. (Hérité de ConfigurationElement) |
LockElements |
Obtient la collection d'éléments verrouillés. (Hérité de ConfigurationElement) |
LockItem |
Obtient ou définit une valeur indiquant si l'élément est verrouillé. (Hérité de ConfigurationElement) |
Properties |
Obtient la collection de propriétés. (Hérité de ConfigurationElement) |
Timeouts |
Obtient les éléments de temporisation par défaut utilisés pour un objet HttpListener. |
UnescapeRequestUrl |
Obtient une valeur qui indique si HttpListener utilise l'URI brut sans séquence d'échappement plutôt que l'URI converti. |
Méthodes
DeserializeElement(XmlReader, Boolean) |
Lit du XML à partir du fichier de configuration. (Hérité de ConfigurationElement) |
Equals(Object) |
Compare l’instance de ConfigurationElement actuelle à l’objet spécifié. (Hérité de ConfigurationElement) |
GetHashCode() |
Obtient une valeur unique représentant l'instance actuelle de ConfigurationElement. (Hérité de ConfigurationElement) |
GetTransformedAssemblyString(String) |
Retourne la version transformée du nom de l'assembly spécifié. (Hérité de ConfigurationElement) |
GetTransformedTypeString(String) |
Retourne la version transformée du nom de type spécifié. (Hérité de ConfigurationElement) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
Init() |
Rétablit l’état initial de l’objet ConfigurationElement. (Hérité de ConfigurationElement) |
InitializeDefault() |
Utilisé pour initialiser un jeu de valeurs par défaut pour l'objet ConfigurationElement. (Hérité de ConfigurationElement) |
IsModified() |
Indique si cet élément de configuration a été modifié depuis son dernier enregistrement ou chargement lorsqu'il est implémenté dans une classe dérivée. (Hérité de ConfigurationElement) |
IsReadOnly() |
Obtient une valeur indiquant si l’objet ConfigurationElement est en lecture seule. (Hérité de ConfigurationElement) |
ListErrors(IList) |
Ajoute les erreurs de propriété non valide dans cet objet ConfigurationElement et dans tous les sous-éléments à la liste passée. (Hérité de ConfigurationElement) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Obtient une valeur indiquant si un attribut inconnu est rencontré pendant la désérialisation. (Hérité de ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Obtient une valeur indiquant si un élément inconnu est rencontré pendant la désérialisation. (Hérité de ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Lève une exception lorsqu'une propriété requise est introuvable. (Hérité de ConfigurationElement) |
PostDeserialize() |
Appelé après la désérialisation. (Hérité de ConfigurationElement) |
PreSerialize(XmlWriter) |
Appelé avant la sérialisation. (Hérité de ConfigurationElement) |
Reset(ConfigurationElement) |
Rétablit l'état interne de l'objet ConfigurationElement, y compris les verrouillages et les collections de propriétés. (Hérité de ConfigurationElement) |
ResetModified() |
Réinitialise la valeur de la méthode IsModified() à |
SerializeElement(XmlWriter, Boolean) |
Écrit le contenu de cet élément de configuration dans le fichier de configuration lorsqu'il est implémenté dans une classe dérivée. (Hérité de ConfigurationElement) |
SerializeToXmlElement(XmlWriter, String) |
Écrit les balises extérieures de cet élément de configuration dans le fichier de configuration lorsqu'il est implémenté dans une classe dérivée. (Hérité de ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Affecte la valeur spécifiée à une propriété. (Hérité de ConfigurationElement) |
SetReadOnly() |
Définit la propriété IsReadOnly() pour l'objet ConfigurationElement et tous les sous-éléments. (Hérité de ConfigurationElement) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Modifie l'objet ConfigurationElement pour supprimer toutes les valeurs qui ne doivent pas être enregistrées. (Hérité de ConfigurationElement) |