Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Uri (Clase)

Proporciona una representación de objeto de un identificador de recursos uniforme (URI) y un acceso sencillo a las partes del identificador URI.

Espacio de nombres:  System
Ensamblado:  System (en System.dll)

[SerializableAttribute]
[TypeConverterAttribute(typeof(UriTypeConverter))]
public class Uri : ISerializable

El tipo Uri expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUri(String)Inicializa una nueva instancia de la clase Uri con el identificador URI especificado.
Método protegidoUri(SerializationInfo, StreamingContext)Inicializa una nueva instancia de la clase Uri a partir de las instancias especificadas de las clases SerializationInfo y StreamingContext.
Método públicoCompatible con XNA FrameworkUri(String, Boolean) Obsoleta. Inicializa una nueva instancia de la clase Uri con el identificador URI especificado, con control explícito de escape de caracteres.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUri(String, UriKind)Inicializa una nueva instancia de la clase Uri con el identificador URI especificado. Este constructor permite especificar si la cadena URI corresponde a un identificador URI relativo, a un identificador URI absoluto, o si está sin determinar.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUri(Uri, String)Inicializa una nueva instancia de la clase Uri según la cadena de URI base y URI relativo especificada.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUri(Uri, Uri)Inicializa una nueva instancia de la clase Uri a partir de la combinación de una instancia de Uri base especificada y una instancia de Uri relativa.
Método públicoCompatible con XNA FrameworkUri(Uri, String, Boolean) Obsoleta. Inicializa una nueva instancia de la clase Uri según los identificadores URI base y relativo especificados, con control explícito de las secuencias de escape.
Arriba

  NombreDescripción
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsAbsolutePathObtiene la ruta de acceso absoluta del identificador URI.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsAbsoluteUriObtiene el identificador URI absoluto.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsAuthorityObtiene el nombre de host DNS (Sistema de nombres de dominio) o la dirección IP y el número de puerto de un servidor.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsDnsSafeHostObtiene un nombre de host sin secuencias de escape que es seguro para la resolución DNS.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFragmentObtiene el fragmento de URI de escape.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHostObtiene el componente de host de esta instancia.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHostNameTypeObtiene el tipo del nombre de host especificado en el identificador URI.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsAbsoluteUriObtiene un valor que indica si la instancia de Uri es absoluta.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsDefaultPortObtiene un valor que indica si el valor de puerto del identificador URI es el valor predeterminado para este esquema.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsFileObtiene un valor que indica si Uri es un identificador URI de archivo.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsLoopbackObtiene un valor que indica si el Uri especificado hace referencia al host local.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsUncObtiene un valor que indica si el Uri especificado es una ruta de acceso UNC (Convención de nomenclatura universal).
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsLocalPathObtiene una representación del sistema operativo local de un nombre de archivo.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsOriginalStringObtiene la cadena URI original pasada al constructor Uri.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPathAndQueryObtiene las propiedades AbsolutePath y Query separadas por un signo de interrogación de cierre (?).
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPortObtiene el número de puerto de este URI.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsQueryObtiene la información de consulta incluida en el identificador URI especificado.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsSchemeObtiene el nombre de esquema de este URI.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsSegmentsObtiene una matriz que contiene los segmentos de ruta de acceso que componen el identificador URI especificado.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUserEscapedIndica que se aplicaron secuencias de escape a toda la cadena URI antes de que crear la instancia de Uri.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUserInfoObtiene el nombre de usuario, la contraseña u otra información específica del usuario asociada al identificador URI especificado.
Arriba

  NombreDescripción
Método protegidoCompatible con XNA FrameworkCanonicalizeInfraestructura. Obsoleta. Convierte el identificador URI almacenado internamente en formato canónico.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCheckHostNameDetermina si el nombre de host especificado es un nombre DNS válido.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCheckSchemeNameDetermina si el nombre de esquema especificado es válido.
Método protegidoCompatible con XNA FrameworkCheckSecurityInfraestructura. Obsoleta. Llamar a este método no tiene ningún efecto.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCompareCompara las partes especificadas de dos identificadores URI utilizando las reglas de comparación especificadas.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualsCompara dos instancias de Uri para determinar si son iguales. (Invalida a Object.Equals(Object)).
Método protegidoCompatible con XNA FrameworkEscapeInfraestructura. Obsoleta. Convierte cualquier carácter no seguro o reservado del componente de ruta de acceso en su representación de carácter hexadecimal.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEscapeDataStringConvierte una cadena en su representación de escape.
Método protegidoMiembro estáticoCompatible con XNA FrameworkEscapeString Obsoleta. Convierte una cadena en su representación de escape.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEscapeUriStringConvierte una cadena URI en su representación con secuencias de escape.
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoMiembro estáticoCompatible con XNA FrameworkFromHexObtiene el valor decimal de un dígito hexadecimal.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetComponentsObtiene los componentes especificados de la instancia actual utilizando las secuencias de escape especificadas para los caracteres especiales.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeObtiene el código hash del identificador URI. (Invalida a Object.GetHashCode()).
Método públicoCompatible con XNA FrameworkGetLeftPartObtiene la parte especificada de una instancia de Uri.
Método protegidoGetObjectDataDevuelve los datos necesarios para serializar la instancia actual.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoMiembro estáticoCompatible con XNA FrameworkHexEscapeConvierte un carácter especificado en su equivalente en representación hexadecimal.
Método públicoMiembro estáticoCompatible con XNA FrameworkHexUnescapeConvierte una representación hexadecimal especificada de un carácter en el carácter.
Método protegidoCompatible con XNA FrameworkIsBadFileSystemCharacterInfraestructura. Obsoleta. Obtiene un valor que indica si un carácter en un nombre del sistema de archivos no es válido.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsBaseOfDetermina si la instancia de Uri actual es la base de la instancia de Uri especificada.
Método protegidoMiembro estáticoCompatible con XNA FrameworkIsExcludedCharacterInfraestructura. Obsoleta. Obtiene un valor que indica si se deben utilizar secuencias de escape para el carácter especificado.
Método públicoMiembro estáticoCompatible con XNA FrameworkIsHexDigitDetermina si un carácter especificado es un dígito hexadecimal válido.
Método públicoMiembro estáticoCompatible con XNA FrameworkIsHexEncodingDetermina si un carácter de una cadena tiene codificación hexadecimal.
Método protegidoCompatible con XNA FrameworkIsReservedCharacterInfraestructura. Obsoleta. Obtiene un valor que indica si el carácter especificado es un carácter reservado.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsWellFormedOriginalStringIndica si la cadena utilizada para construir este Uri tenía el formato correcto y no es necesario utilizar después secuencias de escape.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsWellFormedUriStringIndica si la cadena tiene el formato correcto al intentar construir un URI con ella y garantiza que la cadena no requiere después secuencias de escape.
Método públicoCompatible con XNA FrameworkMakeRelative Obsoleta. Determina la diferencia que existe entre dos instancias de Uri.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsMakeRelativeUriDetermina la diferencia que existe entre dos instancias de Uri.
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoCompatible con XNA FrameworkParseInfraestructura. Obsoleta. Analiza el identificador URI de la instancia actual para garantizar que contiene todas las partes requeridas para que un URI sea válido.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToStringObtiene una representación de cadena canónica para la instancia especificada de Uri. (Invalida a Object.ToString()).
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsTryCreate(String, UriKind, Uri)Crea un nuevo Uri utilizando la instancia de String especificada y un UriKind.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsTryCreate(Uri, String, Uri)Crea un nuevo Uri a partir de las instancias base y relativa de String especificadas.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsTryCreate(Uri, Uri, Uri)Crea un nuevo Uri a partir de las instancias base y relativa de Uri especificadas.
Método protegidoCompatible con XNA FrameworkUnescapeInfraestructura. Obsoleta. Convierte la cadena especificada, reemplazando cualquier secuencia de escape por su representación sin escape.
Método públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsUnescapeDataStringConvierte una cadena en su representación sin secuencias de escape.
Arriba

  NombreDescripción
Operador públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualityDetermina si dos instancias de Uri tienen el mismo valor.
Operador públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsInequalityDetermina si dos instancias de Uri no tienen el mismo valor.
Arriba

  NombreDescripción
Campo públicoMiembro estáticoCompatible con XNA FrameworkSchemeDelimiterEspecifica los caracteres que separan el servicio de protocolo de comunicaciones de la parte correspondiente a la dirección del identificador URI. Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeFileEspecifica que el identificador URI es un puntero a un archivo. Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeFtpEspecifica que se puede tener acceso al identificador URI mediante FTP (Protocolo de transferencia de archivos). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeGopherEspecifica que se puede tener acceso al identificador URI mediante el protocolo Gopher. Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeHttpEspecifica que se puede obtener acceso al identificador URI mediante HTTP (Protocolo de transferencia de hipertexto). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeHttpsEspecifica que se puede obtener acceso al identificador URI mediante HTTPS (Protocolo de transferencia segura de hipertexto). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeMailtoEspecifica que el identificador URI es una dirección de correo electrónico accesible a través de SMTP (Protocolo simple de transferencia de correo). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeNetPipeEspecifica que se tiene acceso al URI a través del esquema NetPipe utilizado por Windows Communication Foundation (WCF). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeNetTcpEspecifica que se tiene acceso al URI a través del esquema NetTcp utilizado por Windows Communication Foundation (WCF). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeNewsEspecifica que el identificador URI es un grupo de noticias de Internet accesible a través de NNTP (Protocolo de transferencia de noticias en red). Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con XNA FrameworkUriSchemeNntpEspecifica que el identificador URI es un grupo de noticias de Internet accesible a través de NNTP (Protocolo de transferencia de noticias en red). Este campo es de sólo lectura.
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoISerializable.GetObjectDataDevuelve los datos necesarios para serializar la instancia actual.
Arriba

Un identificador URI es una representación compacta de un recurso disponible para la aplicación en la intranet o en Internet. La clase Uri define las propiedades y los métodos necesarios para controlar los identificadores URI, incluidos el análisis, la comparación y la combinación. Las propiedades de la clase Uri son de sólo lectura; para crear un objeto modificable, use la clase UriBuilder.

Los identificadores URI relativos (por ejemplo, "/new/index.htm") deben expandirse con respecto a un identificador URI base para que pasen a ser absolutos. Se proporciona el método MakeRelative para convertir identificadores URI absolutos en identificadores URI relativos cuando sea necesario.

Los constructores de Uri no utilizan secuencias de escape en las cadenas del identificador URI si la cadena tiene el formato correcto e incluye un identificador de esquema.

Las propiedades de Uri devuelven una representación de datos canónica con codificación de escape, y todos los caracteres cuyos valores Unicode sean mayores que 127 se sustituyen por sus equivalentes hexadecimales. Para poner el identificador URI en formato canónico, el constructor de Uri realiza los pasos siguientes.

  • Convierte a minúsculas el esquema del identificador URI.

  • Convierte a minúsculas el nombre de host.

  • Si el nombre de host es una dirección IPv6, se utiliza la dirección IPv6 canónica. Se quitan ScopeId y otros datos opcionales de IPv6.

  • Quita los números de puertos vacíos y predeterminados.

  • Canoniza la ruta de acceso de los identificadores URI jerárquicos mediante la compactación de secuencias como /./, /../, //, incluidas las representaciones con secuencias de escape. Observe que hay algunos esquemas para los que no se compactan las representaciones de escape.

  • Para los identificadores URI jerárquicos, si el host no finaliza con una barra diagonal (/), se agrega una.

  • De forma predeterminada, a cualquier carácter reservado del identificador URI se le aplican las secuencias de escape establecidas en RFC 2396. Este comportamiento cambia si el análisis de los identificadores de recursos internacionales (IRI) o de los nombres de dominio internacionales (IDN) está habilitado, en cuyo caso los caracteres reservados en URI se consideran caracteres de escape de acuerdo con RFC 3986 y RFC 3987.

Como parte de la canonización en el constructor para algunos esquemas, se compactan las representaciones de escape. Los esquemas para los que el identificador URI compactará las secuencias de escape son los siguientes: file, http, https, net.pipe y net.tcp. Para todos los demás esquemas, no se compactan las secuencias de escape. Por ejemplo, si se codifica con un símbolo de porcentaje los dos puntos ".." como "%2E%2E", el constructor de URI compactará esta secuencia para algunos esquemas. En el ejemplo de código siguiente se muestra un constructor de URI para el esquema http.


    Uri uri = new Uri("http://myUrl/%2E%2E/%2E%2E");
    Console.WriteLine(uri.AbsoluteUri);
    Console.WriteLine(uri.PathAndQuery);

Cuando se ejecuta este código, se devuelve el resultado siguiente con la secuencia de escape compactada.


http://myUrl/
/

En el ejemplo de código siguiente se muestra un constructor de URI para el esquema ftp:


    Uri uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E");
    Console.WriteLine(uri.AbsoluteUri);
    Console.WriteLine(uri.PathAndQuery);

Cuando se ejecuta este código, se devuelve el resultado siguiente con la secuencia de escape sin compactar.


ftp://myUrl/%2E%2E/%2E%2E
/%2E%2E/%2E%2E

El método ToString permite transformar el contenido de la clase Uri de una referencia de identificador URI con códigos de escape en una referencia de identificador URI legible. Observe que algunos caracteres reservados todavía podrían contener secuencias de escape en los resultados del método ToString. El motivo es facilitar la reconstrucción inequívoca de un identificador URI a partir del valor devuelto por ToString.

Algunos identificadores URI incluyen un identificador de fragmento, una consulta o ambos. Un identificador de fragmento es cualquier texto precedido por el signo de número (#), sin incluirlo; el texto del fragmento se almacena en la propiedad Fragment. La información de consulta es el texto situado detrás de un signo de interrogación de cierre (?) en el identificador URI; el texto de consulta se almacena en la propiedad Query.

En la versión 1.1 de .NET Framework, si la cadena especificada para un constructor contiene un esquema desconocido y "c:\", la clase Uri inserta "//" después de los dos puntos. Por ejemplo, xyz:c:\abc se convierte en xyz://c:/abc. En la versión 2.0 de .NET Framework, este comportamiento ya no existe, por lo que la cadena del ejemplo se convertiría en xyz:c:/abc.

NotaNota

La clase URI admite el uso de direcciones IP en notaciones de cuatro números para el protocolo IPv4 y notaciones hexadecimales con dos puntos para el protocolo IPv6. Recuerde incluir la dirección IPv6 entre corchetes, como en http://[::1].

Compatibilidad con los identificadores de recursos internacionales

Las direcciones web se suelen expresar con identificadores uniformes de recursos que están compuestos por un conjunto de caracteres muy restringido:

  • Letras ASCII mayúsculas y minúsculas del alfabeto inglés.

  • Dígitos de 0 a 9.

  • Un número pequeño de otros símbolos ASCII.

Las especificaciones para los URI figuran en los documentos RFC 2396, RFC 2732, RFC 3986 y RFC 3987 publicados por el grupo de trabajo de ingeniería de Internet IETF (Internet Engineering Task Force).

Con el desarrollo de Internet, hay una necesidad creciente de identificar los recursos con idiomas que no sean el inglés. Los identificadores que facilitan esta necesidad y permiten caracteres distintos de ASCII (caracteres del juego de caracteres Unicode/ISO 10646) se conocen como identificadores de recursos internacionales (IRI). Las especificaciones para los IRI figuran en el documento RFC 3987 publicado por el IETF. Los IRI permiten que las direcciones URL contengan caracteres Unicode.

La clase Uri existente se ha extendido en .NET Framework v3.5, 3.0 SP1 y 2.0 SP1 para proporcionar compatibilidad con los identificadores de recursos internacionales (IRI) basados en RFC 3987. Los usuarios actuales no verán ningún cambio respecto del comportamiento de .NET Framework 2.0, a menos que habiliten específicamente IRI. De este modo, queda garantizada la compatibilidad de la aplicación con las versiones anteriores de .NET Framework.

Para habilitar la compatibilidad para IRI, es preciso realizar el cambio siguiente:

  • Especificar si se desea aplicar el análisis IDN (nombres de dominio internacionalizados) al nombre de dominio y si deben aplicarse las reglas de análisis IRI. Esto puede hacerse en el archivo machine.config o app.config. Por ejemplo, agregue el siguiente código:

    <configuration>
      <uri>
      <idn enabled="All" />
      <iriParsing enabled="true" />
      </uri>
    </configuration>
    

Al habilitar IDN, todas las etiquetas Unicode de un nombre de dominio se convertirán en sus equivalentes Punycode. Los nombres Punycode sólo contienen caracteres ASCII y siempre empiezan con el prefijo xn--. De este modo, se proporciona compatibilidad con los servidores DNS existentes en Internet, dado que la mayoría de estos servidores sólo admiten caracteres ASCII (vea RFC 3940).

Al habilitar IRI e IDN, el valor de la propiedad Uri.DnsSafeHost se ve afectado. Al habilitar IRI e IDN, también puede cambiar el comportamiento de los métodos Equals, OriginalString, GetComponents e IsWellFormedOriginalString.

Hay tres valores posibles para IDN según los servidores DNS que se usen:

  • idn enabled = All

    Este valor convierte cualquier nombre de dominio Unicode a su equivalente Punycode (nombres IDN).

  • idn enabled = AllExceptIntranet

    Este valor convertirá todos los nombres de dominio Unicode que no estén en la intranet local para que se utilicen sus equivalentes (nombres IDN). En este caso, para administrar los nombres internacionales en la intranet local, los servidores DNS que se utilizan para la intranet deben admitir la resolución de nombres Unicode.

  • idn enabled = None

    Este valor no convierte ningún nombre de dominio Unicode para que se use Punycode. Éste es el valor predeterminado, que es coherente con el comportamiento de .NET Framework 2.0.

Al habilitar el análisis IRI (iriParsing enabled = true), la normalización y la comprobación de caracteres se realizarán de acuerdo con las últimas reglas IRI de RFC 3986 y RFC 3987. El valor predeterminado es false, por lo que la normalización y la comprobación de caracteres se realizarán de acuerdo con RFC 2396 y RFC 2732 (para literales de IPv6).

El procesamiento de IRI e IDN en la clase Uri también puede controlarse mediante las clases de valores de configuración System.Configuration.IriParsingElement, System.Configuration.IdnElement y System.Configuration.UriSection. El valor System.Configuration.IriParsingElement habilita o deshabilita el procesamiento de IRI en la clase Uri. El valor System.Configuration.IdnElement habilita o deshabilita el procesamiento de IDN en la clase Uri. El valor System.Configuration.IriParsingElement también controla IDN indirectamente. El procesamiento IRI debe estar habilitado para que el procesamiento IDN sea posible. Si el procesamiento IRI está deshabilitado, el procesamiento IDN se establece en el valor predeterminado, donde se usa el comportamiento de .NET Framework 2.0 por motivos de compatibilidad y no se usan los nombres IDN.

El valor de configuración para System.Configuration.IriParsingElement e System.Configuration.IdnElement se leerá una vez cuando se construya la primera clase System.Uri. Después de ese momento, se omitirán los cambios que se produzcan en los valores de configuración.

La clase System.GenericUriParser también se ha extendido para permitir la creación de un analizador personalizable que admita IRI e IDN. El comportamiento de un objeto System.GenericUriParser se especifica pasando al constructor de System.GenericUriParser una combinación bit a bit de los valores disponibles en la enumeración de System.GenericUriParserOptions. El tipo GenericUriParserOptions.IriParsing indica que el analizador admite las reglas de análisis especificadas en RFC 3987 para los identificadores de recursos internacionales (IRI). El uso de IRI viene determinado por los valores de configuración anteriormente mencionados.

El tipo GenericUriParserOptions.Idn indica que el analizador admite el análisis IDN (Nombres de dominio internacionalizados) de los nombres de host. El uso de IDN viene determinado por los valores de configuración anteriormente mencionados.

Consideraciones sobre el rendimiento

Si utiliza un archivo Web.config que contiene identificadores URI para inicializar su aplicación, los URI tardarán más tiempo en procesarse si sus identificadores de esquema no son estándar. En tal caso, inicialice las partes afectadas de su aplicación cuando se requieran los URI, no en el inicio.

Notas para los llamadores

Por cuestiones de seguridad, la aplicación debe tener cuidado al aceptar instancias de Uri de los orígenes que no sean de confianza y con dontEscape establecido en true. Se puede comprobar la validez de una cadena de URI llamando al método IsWellFormedOriginalString.

En el siguiente ejemplo se crea una instancia de la clase Uri y se utiliza para crear una instancia de WebRequest.


Uri siteUri = new Uri("http://www.contoso.com/");

WebRequest wr = WebRequest.Create(siteUri);



.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft