Élément <schemeSettings> (paramètres d’URI)

Spécifie la façon dont un Uri est analysé pour les schémas spécifiques.

<configuration>
  <URI>
    <schemeSettings>

Syntaxe

<schemeSettings>
</schemeSettings>  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Aucun

Éléments enfants

Element Description
add Ajoute un paramètre de schéma pour un nom de schéma.
clear Efface tous les paramètres de schéma existants.
remove Supprime un paramètre de schéma pour un nom de schéma.

Éléments parents

Element Description
uri Contient les paramètres qui spécifient la façon dont .NET Framework gère les adresses web exprimées à l’aide d’URI (Uniform Resource Identifier).

Notes

Par défaut, la classe System.Uri annule l’échappement des délimiteurs de chemin encodés en pourcentage avant d’exécuter la compression de chemin. Elle a été implémentée en guise de mécanisme de sécurité destiné à lutter contre les attaques comme suit :

http://www.contoso.com/..%2F..%2F/Windows/System32/cmd.exe?/c+dir+c:\

Si cet URI est transmis à des modules qui ne gèrent pas correctement les caractères encodés en pourcentage, la commande suivante risque d’être exécutée par le serveur :

c:\Windows\System32\cmd.exe /c dir c:\

Pour cette raison, la classe System.Uri commence par annuler l’échappement des délimiteurs de chemin, puis applique la compression de chemin. Le résultat de la transmission de l’URL malveillante ci-dessus au constructeur de classe System.Uri donne l’URI suivant :

http://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\

Ce comportement par défaut peut être modifié de façon à ne pas annuler l’échappement des délimiteurs de chemin encodés en pourcentage en utilisant l’option de configuration schemeSettings pour un schéma spécifique.

Fichiers de configuration

Cet élément peut être défini dans le fichier de configuration de l'application ou dans le fichier de configuration de l'ordinateur (Machine.config).

Exemple

L’exemple suivant montre une configuration que la classe Uri utilise pour prendre en charge le non-échappement des délimiteurs de chemin encodés en pourcentage pour le schéma http.

<configuration>  
  <uri>  
    <schemeSettings>  
      <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>  
    </schemeSettings>  
  </uri>  
</configuration>  

Informations sur les éléments

Espace de noms : System

Voir aussi