Teilen über


<schemeSettings>-Element (URI-Einstellungen)

Gibt an, ob Uri auf bestimmte Schemen analysiert wird.

<configuration>
  <uri>
    <schemeSettings>

Syntax

<schemeSettings>
</schemeSettings>  

Attribute und Elemente

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

Attribute

Keine

Untergeordnete Elemente

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

Übergeordnete Elemente

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

Bemerkungen

Standardmäßig entfernt die System.Uri-Klasse die Escapezeichen für mit Prozentzeichen codierte Pfadtrennzeichen, bevor die Pfadkomprimierung ausgeführt wird. Dies wurde als Sicherheitsmechanismus vor Angriffen wie den folgenden implementiert:

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

Wenn dieser URI an Module übergeben wird, die mit Prozentzeichen codierte Zeichen nicht ordnungsgemäß behandeln, könnte dies dazu führen, dass der folgende Befehl vom Server ausgeführt wird:

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

Aus diesem Grund entfernt die System.Uri-Klasse zuerst die Escapezeichen von den Pfadtrennzeichen und wendet dann die Pfadkomprimierung an. Das Ergebnis der Übergabe der oben genannten bösartigen URL an den System.Uri-Klassenkonstruktor führt zu folgendem URI:

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

Dieses Standardverhalten kann mithilfe der Konfigurationsoption „schemeSettings“ für ein bestimmtes Schema so geändert werden, dass die Escapezeichen von mit Prozentzeichen codierten Pfadtrennzeichen nicht entfernt werden.

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 die Nichtverwendung von Escapezeichen für mit Prozentzeichen codierte Pfadtrennzeichen für das HTTP-Schema zu unterstützen.

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

Elementinformationen

Namespace: System

Siehe auch