Condividi tramite


Elemento <schemeSettings> (impostazioni URI)

Specifica come un oggetto Uri verrà analizzato per schemi specifici.

<schemeSettings> 
</schemeSettings>

Attributi ed elementi

Nelle sezioni seguenti vengono illustrati attributi, elementi figlio e padre.

Attributi

Nessuna correzione

Elementi figlio

Elemento

Oggetto di descrizione

<add>

Aggiunge un'impostazione dello schema per un nome di schema.

<clear>

Deseleziona tutte le impostazioni dello schema esistenti.

<remove>

Aggiunge un'impostazione dello schema per un nome di schema.

Elementi padre

Elemento

Oggetto di descrizione

<uri>

Contiene impostazioni che specificano come vengono gestiti in .NET Framework gli indirizzi Web espressi tramite URI (Uniform Resource Identifier).

Note

Per impostazione predefinita, la classe System.Uri priva dei caratteri escape i delimitatori del percorso con codifica percentuale prima di eseguire la compressione del percorso. È stato implementato come meccanismo di sicurezza rispetto ad attacchi simili ai seguenti:

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

Se questo URI viene passato lungo i moduli che non gestiscono correttamente i caratteri codificati in percentuale, potrebbe verificarsi che il comando seguente venga eseguito dal server:

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

Per questo motivo, la classe System.Uri come prima cosa priva dei caratteri escape i delimitatori del percorso, quindi applica compressione del percorso. Il risultato di passare l'URL dannoso al costruttore di classe System.Uri è il seguente URI:

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

È possibile modificare questo comportamento predefinito per non consentire l'escape dei delimitatori del percorso con codifica percentuale utilizzando l'opzione di configurazione schemeSettings per uno specifico schema.

File di configurazione

L'elemento può essere utilizzato nel file di configurazione dell'applicazione o nel file di configurazione del computer (Machine.config).

Esempio

Nell'esempio di codice seguente viene mostrata una configurazione utilizzata dalla classe Uri per il supporto di non eseguire l'operazione di escape dei delimitatori di percorso con codifica percentuale dello schema HTTP.

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

Informazioni sull'elemento

Spazio dei nomi

Sistema

Nome di schema

File di convalida

Può essere vuoto

Vedere anche

Riferimenti

Schema delle impostazioni di rete

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri