Compartir a través de


<schemeSettings> (Elemento, Configuración de URI)

Especifica cómo se analizará Uri para esquemas concretos.

<schemeSettings> 
</schemeSettings>

Atributos y elementos

En las secciones siguientes se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Ninguno

Elementos secundarios

Elemento

Descripción

<add>

Agrega un valor de esquema para un nombre de esquema.

<clear>

Desactiva todos los valores de esquema existentes.

<remove>

Quita un valor de esquema de un nombre de esquema.

Elementos primarios

Elemento

Descripción

<uri>

Contiene los valores que especifican el modo en que .NET Framework administra las direcciones web expresadas mediante identificadores uniformes de recursos (URI).

Comentarios

De forma predeterminada, la clase System.Uri quita los caracteres de escape de los delimitadores de ruta de acceso codificados con porcentaje antes de ejecutar la compresión de la ruta de acceso. Esto se implementó como un mecanismo de seguridad frente a ataques como el siguiente:

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

Si este URI se pasa a los módulos sin controlar correctamente los caracteres codificados con porcentaje, podría ocurrir que el servidor ejecute el comando siguiente:

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

Por esta razón, la clase System.Uri primero quita los caracteres de escape de los delimitadores de ruta de acceso y, a continuación, aplica la compresión de la ruta de acceso. El resultado de pasar la dirección URL malintencionada anterior al constructor de clase System.Uri produce el URI siguiente:

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

Este comportamiento predeterminado se puede modificar para no quitar los caracteres de escape de los delimitadores de ruta de acceso codificados con porcentaje utilizando la opción de configuración schemeSettings para un esquema concreto.

Archivos de configuración

Este elemento puede utilizarse en el archivo de configuración de la aplicación o en el archivo de configuración del equipo (Machine.config).

Ejemplo

El ejemplo de código siguiente muestra una configuración utilizada por la clase Uri para permitir delimitadores de ruta de acceso con codificación de porcentaje para el esquema http.

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

Información de elemento

Espacio de nombres

Sistema

Nombre de esquema

Archivo de validación

Puede estar vacío

Vea también

Referencia

Esquema de la configuración de red

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri