Compartir a través de


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

Agrega un valor de esquema para un nombre de esquema.

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

Atributos y elementos

En las próximas secciones se describen los atributos, los elementos secundarios y los elementos primarios

Atributos

Atributo

Descripción

name

El nombre de esquema para el que se aplica este valor. Los únicos valores compatibles son name="http" y name="https".

Atributo {nombre del atributo}

Valor

Descripción

genericUriParserOptions

Las opciones de analizador de este esquema. El único valor compatible es genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Elementos secundarios

Ninguno

Elementos primarios

Elemento

Descripción

<schemeSettings>

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

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>

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