<add> Element för schemeSettings (URI-inställningar)

Lägger till en schemainställning för ett schemanamn.

<configuration>
  <uri>
    <schemeSettings>
      <add>

Syntax

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

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element

Attributes

Attribute Description
name Det schemanamn som den här inställningen gäller för. De enda värden som stöds är name="http" och name="https".

{Attributnamn} Attribut

Värde Description
genericUriParserOptions Parsningsalternativen för det här schemat. Det enda värde som stöds är genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Underordnade element

None

Överordnade element

Komponent Description
<schemeSettings-element> (URI-inställningar) Anger hur en Uri ska parsas för specifika scheman.

Anmärkningar

Som standard System.Uri tar klassen bort procentkodade sökvägsavgränsare innan sökvägskomprimering körs. Detta implementerades som en säkerhetsmekanism mot attacker som följande:

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

Om den här URI:n skickas till moduler som inte hanterar procentkodade tecken korrekt kan det resultera i att följande kommando körs av servern:

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

Därför System.Uri avmarkerar klassen först sökvägsavgränsare och tillämpar sedan sökvägskomprimering. Resultatet av att skicka den skadliga URL:en ovan till System.Uri klasskonstruktorn resulterar i följande URI:

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

Det här standardbeteendet kan ändras till att inte ta bort undantagsprocentkodade sökvägsavgränsare med hjälp av konfigurationsalternativet schemeSettings för ett specifikt schema.

Konfigurationsfiler

Det här elementet kan användas i programkonfigurationsfilen eller datorkonfigurationsfilen (Machine.config).

Example

I följande exempel visas en konfiguration som används av Uri klassen för att stödja att inte ta bort procentkodade sökvägsavgränsare för http-schemat.

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

Se även