Freigeben über


<schemeSettings> Element (URI-Einstellungen)

Gibt an, wie ein Uri Schema analysiert wird.

<configuration>   <uri>     <schemeSettings>

Syntax

<schemeSettings>
</schemeSettings>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Nichts

Untergeordnete Elemente

Element Beschreibung
hinzufügen Fügt eine Schemaeinstellung für einen Schemanamen hinzu.
clear Löscht alle vorhandenen Schemaeinstellungen.
remove Entfernt eine Schemaeinstellung für einen Schemanamen.

Übergeordnete Elemente

Element Beschreibung
uri Enthält Einstellungen, die angeben, wie das .NET Framework Webadressen verarbeitet, die mithilfe von URIs (Uniform Resource Identifiers) ausgedrückt werden.

Bemerkungen

Standardmäßig hebt die Klasse vor dem System.Uri Ausführen der Pfadkomprimierung die Prozent-codierten Pfadtrennzeichen auf. Dies wurde als Sicherheitsmechanismus für Angriffe wie die folgenden implementiert:

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

Wenn dieser URI an Module übergeben wird, die keine prozentcodierten Zeichen richtig verarbeiten, kann der folgende Befehl vom Server ausgeführt werden:

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

Aus diesem Grund System.Uri hebt die Klasse zuerst Pfadtrennzeichen auf und wendet dann die Pfadkomprimierung an. Das Ergebnis, dass die oben genannte bösartige URL an System.Uri den Klassenkonstruktor übergeben wird, führt zu folgendem URI:

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

Dieses Standardverhalten kann mithilfe der SchemaSettings-Konfigurationsoption für ein bestimmtes Schema geändert werden, um keine Escape-Prozent-codierten Pfadtrennzeichen aufzuheben.

Konfigurationsdateien

Dieses Element kann in der Anwendungskonfigurationsdatei oder in der Computerkonfigurationsdatei (Machine.config) verwendet werden.

Beispiel

Das folgende Beispiel zeigt eine Konfiguration, die von der Uri Klasse verwendet wird, um zu unterstützen, dass keine prozentcodierten Pfadtrennzeichen für das HTTP-Schema zurückgegeben werden.

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

Elementinformationen

Namespace: System

Siehe auch