Freigeben über


<add>-Element für schemeSettings (URI-Einstellungen)

Fügt eine Schemaeinstellung für einen Schemanamen hinzu.

<add 
   name = "http|https" genericUriParserOptions="DontUnescapePathDotsAndSlashes"
/>

Attribute und Elemente

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

Attribute

Attribute

Beschreibungen

name

Der Schemaname, für den diese Einstellung gültig ist. Die einzigen unterstützten Werte sind Name = "http" und Name = "https".

{Attributname} Attribut

Value

Beschreibungen

genericUriParserOptions

Die Parseroptionen für dieses Schema. Der einzige unterstützte Wert ist genericUriParserOptions = "DontUnescapePathDotsAndSlashes".

Untergeordnete Elemente

None

Übergeordnete Elemente

Element

Beschreibungen

<schemeSettings>

Gibt an, wie ein Uri-Objekt für bestimmte Schemen analysiert wird.

Hinweise

Standardmäßig entfernt die System.Uri-Klasse Escapezeichen aus als Prozentwert codierte Pfadtrennzeichen vor dem Ausführen der Pfadkomprimierung. Dies wurde als Sicherheitsmechanismus gegen Angriffe implementiert. Beispiel:

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

Wenn dieser URI an Module übergeben wird und als Prozentwert codierte Zeichen nicht ordnungsgemäß behandelt werden, kann dies dazu führen, dass vom Server der folgende Befehl ausgeführt wird:

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

Aus diesem Grund entfernt die System.Uri-Klasse zuerst Escapezeichen aus Pfadtrennzeichen und wendet dann die Pfadkomprimierung an. Das Übergeben der böswilligen URL oben an den System.Uri-Klassenkonstruktor führt zum folgenden URI:

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

Dieses Standardverhalten kann so abgeändert werden, dass aus prozentcodierten Pfadtrennzeichen, die die schemeSettings-Konfigurationsoption für ein bestimmtes Schema verwenden, die Escapezeichen nicht gelöscht werden.

Konfigurationsdateien

Dieses Element kann in der Konfigurationsdatei der Anwendung oder in der Konfigurationsdatei des Computers (Machine.config) verwendet werden.

Beispiel

Im folgenden Codebeispiel wird ebenfalls eine von der Uri-Klasse verwendete Konfiguration gezeigt, die das Nichthinzufügen von Escapezeichen zu als Prozentwert codierten Pfadabgrenzungszeichen für das HTTP-Schema unterstützt.

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

Siehe auch

Referenz

Netzwerkeinstellungsschema

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri