Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Uri, classe

Fournit une représentation objet d'un URI (Uniform Resource Identifier) et un accès simplifié aux parties de l'identificateur.

Espace de noms :  System
Assembly :  System (dans System.dll)

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

Le type Uri expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUri(String)Initialise une nouvelle instance de la classe Uri avec l'URI spécifié.
Méthode protégéeUri(SerializationInfo, StreamingContext)Initialise une nouvelle instance de la classe Uri à partir des instances spécifiées des classes SerializationInfo et StreamingContext.
Méthode publiquePris en charge par XNA FrameworkUri(String, Boolean) Obsolète. Initialise une nouvelle instance de la classe Uri avec l'URI spécifié et contrôle explicite de l'échappement des caractères.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUri(String, UriKind)Initialise une nouvelle instance de la classe Uri avec l'URI spécifié. Ce constructeur vous permet de spécifier si la chaîne d'URI est un URI relatif, un URI absolu ou si elle est indéterminée.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUri(Uri, String)Initialise une nouvelle instance de la classe Uri fondée sur l'URI de base et la chaîne URI relative spécifiés.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUri(Uri, Uri)Initialise une nouvelle instance de la classe Uri en s'appuyant sur la combinaison d'une instance de Uri de base et d'une instance de Uri relative spécifiées.
Méthode publiquePris en charge par XNA FrameworkUri(Uri, String, Boolean) Obsolète. Initialise une nouvelle instance de la classe Uri fondée sur les URI de base et relatifs spécifiés, avec contrôle explicite de l'échappement des caractères.
Début

  NomDescription
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreAbsolutePathObtient le chemin d'accès absolu de l'URI.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreAbsoluteUriObtient l'URI absolu.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreAuthorityObtient le nom de l'hôte DNS (Domain Name System) ou l'adresse IP et le numéro de port pour un serveur.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreDnsSafeHostObtient un nom d'hôte sans séquence d'échappement dont l'utilisation pour la résolution DNS est sécurisée.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFragmentObtient le fragment URI avec séquence d'échappement.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHostObtient le composant hôte de cette instance.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHostNameTypeObtient le type du nom d'hôte spécifié dans l'URI.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsAbsoluteUriObtient une valeur indiquant si l'instance Uri est absolue.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsDefaultPortObtient une valeur indiquant si la valeur du port de l'URI est la valeur par défaut pour ce schéma.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsFileObtient une valeur indiquant si le Uri spécifié est un URI de fichier.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsLoopbackObtient une valeur indiquant si le Uri spécifié référence l'hôte local.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsUncObtient une valeur indiquant si le Uri spécifié est un chemin d'accès UNC (Universal Naming Convention).
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreLocalPathObtient une représentation du système d'exploitation local d'un nom de fichier.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreOriginalStringObtient la chaîne d'URI d'origine passée au constructeur Uri.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StorePathAndQueryObtient les propriétés AbsolutePath et Query séparées par un point d'interrogation (?).
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StorePortObtient le numéro de port de l'URI spécifié.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreQueryObtient les informations de requête incluses dans l'URI spécifié.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreSchemeObtient le nom de schéma de cet URI.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreSegmentsObtient un tableau contenant des segments de chemin d'accès qui composent l'URI spécifié.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUserEscapedIndique que la chaîne de l'URI a été placée intégralement dans une séquence d'échappement avant la création de l'instance de Uri.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUserInfoObtient le nom d'utilisateur, le mot de passe et d'autres informations spécifiques à l'utilisateur associés à l'URI spécifié.
Début

  NomDescription
Méthode protégéePris en charge par XNA FrameworkCanonicalizeInfrastructure. Obsolète. Convertit l'URI stocké en interne au format réglementaire.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCheckHostNameDétermine si le nom d'hôte spécifié est un nom DNS valide.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCheckSchemeNameDétermine si le nom de schéma spécifié est valide.
Méthode protégéePris en charge par XNA FrameworkCheckSecurityInfrastructure. Obsolète. L'appel à cette méthode n'a aucun effet.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreCompareCompare les parties spécifiées de deux URI à l'aide des règles de comparaison spécifiées.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEqualsCompare l'égalité de deux instances de Uri. (Substitue Object.Equals(Object).)
Méthode protégéePris en charge par XNA FrameworkEscapeInfrastructure. Obsolète. Convertit tous les caractères non sécurisés ou réservés dans le composant de chemin d'accès en leurs présentations en caractères hexadécimaux.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEscapeDataStringConvertit une chaîne en sa représentation avec séquence d'échappement.
Méthode protégéeMembre statiquePris en charge par XNA FrameworkEscapeString Obsolète. Convertit une chaîne en sa représentation avec séquence d'échappement.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEscapeUriStringConvertit une chaîne URI en sa représentation sans séquence d'échappement.
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueMembre statiquePris en charge par XNA FrameworkFromHexObtient la valeur décimale d'un chiffre hexadécimal.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetComponentsObtient les composants spécifiés de l'instance actuelle à l'aide de la séquence d'échappement spécifiée pour les caractères spéciaux.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeObtient le code de hachage pour l'URI. (Substitue Object.GetHashCode().)
Méthode publiquePris en charge par XNA FrameworkGetLeftPartObtient la partie spécifiée d'une instance Uri.
Méthode protégéeGetObjectDataRetourne les données nécessaires à la sérialisation de l'instance actuelle.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueMembre statiquePris en charge par XNA FrameworkHexEscapeConvertit un caractère spécifié en son équivalent hexadécimal.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkHexUnescapeConvertit une représentation hexadécimale spécifiée d'un caractère en ce caractère.
Méthode protégéePris en charge par XNA FrameworkIsBadFileSystemCharacterInfrastructure. Obsolète. Obtient une valeur indiquant si un caractère n'est pas valide dans un nom de système de fichiers.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsBaseOfDétermine si l'instance de Uri actuelle est une base de l'instance de Uri spécifiée.
Méthode protégéeMembre statiquePris en charge par XNA FrameworkIsExcludedCharacterInfrastructure. Obsolète. Obtient une valeur indiquant si le caractère spécifié doit être placé dans une séquence d'échappement.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkIsHexDigitDétermine si un caractère spécifié est un chiffre hexadécimal valide.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkIsHexEncodingDétermine si un caractère d'une chaîne est encodé en hexadécimal.
Méthode protégéePris en charge par XNA FrameworkIsReservedCharacterInfrastructure. Obsolète. Obtient une valeur indiquant si le caractère spécifié est réservé.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsWellFormedOriginalStringIndique si la chaîne utilisée pour construire ce Uri était bien formée et qu'elle ne doit pas également faire l'objet d'une séquence d'échappement.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsWellFormedUriStringIndique si la chaîne est bien formée en essayant de construire un URI avec la chaîne et garantit que la chaîne ne doit pas également faire l'objet d'une séquence d'échappement.
Méthode publiquePris en charge par XNA FrameworkMakeRelative Obsolète. Détermine la différence entre deux instances de Uri.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMakeRelativeUriDétermine la différence entre deux instances de Uri.
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéePris en charge par XNA FrameworkParseInfrastructure. Obsolète. Analyse l'URI de l'instance actuelle pour s'assurer qu'il contient toutes les parties requises pour un URI valide.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringObtient une représentation canonique sous forme de chaîne de l'instance de Uri spécifiée. (Substitue Object.ToString().)
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTryCreate(String, UriKind, Uri)Crée Uri à l'aide de l'instance de String spécifiée et de UriKind.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTryCreate(Uri, String, Uri)Crée un Uri à l'aide des instances de String de base et relatives.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreTryCreate(Uri, Uri, Uri)Crée un Uri à l'aide des instances de Uri de base et relatives.
Méthode protégéePris en charge par XNA FrameworkUnescapeInfrastructure. Obsolète. Convertit la chaîne spécifiée en remplaçant toutes les séquences d'échappement par leur représentation sans séquence d'échappement.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreUnescapeDataStringConvertit une chaîne en sa représentation sans séquence d'échappement.
Début

  NomDescription
Opérateur publicMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEqualityDétermine si deux instances de Uri ont la même valeur.
Opérateur publicMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInequalityDétermine si deux instances de Uri n'ont pas la même valeur.
Début

  NomDescription
Champ publicMembre statiquePris en charge par XNA FrameworkSchemeDelimiterSpécifie les caractères qui séparent le schéma du protocole de communication de la partie adresse de l'URI. Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeFileSpécifie que l'URI est un pointeur vers un fichier. Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeFtpSpécifie que l'URI est accessible par l'intermédiaire du protocole FTP (File Transfer Protocol). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeGopherSpécifie que l'URI est accessible par l'intermédiaire du protocole Gopher. Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeHttpSpécifie que l'URI est accessible par l'intermédiaire du protocole HTTP (Hypertext Transfer Protocol). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeHttpsSpécifie que l'URI est accessible par l'intermédiaire du protocole HTTPS (Secure Hypertext Transfer Protocol). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeMailtoSpécifie que l'URI est une adresse de messagerie accessible par l'intermédiaire du protocole SMTP (Simple Mail Transport Protocol). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeNetPipeSpécifie que l'URI est accessible via le modèle NetPipe utilisé par Windows Communication Foundation (WCF). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeNetTcpSpécifie que l'URI est accessible via le modèle NetTcp utilisé par Windows Communication Foundation (WCF). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeNewsSpécifie que l'URI est un groupe de discussion Internet accessible par le protocole NNTP (Network News Transport Protocol). Ce champ est en lecture seule.
Champ publicMembre statiquePris en charge par XNA FrameworkUriSchemeNntpSpécifie que l'URI est un groupe de discussion Internet accessible par le protocole NNTP (Network News Transport Protocol). Ce champ est en lecture seule.
Début

  NomDescription
Implémentation d'interface expliciteMéthode privéeISerializable.GetObjectDataRetourne les données nécessaires à la sérialisation de l'instance actuelle.
Début

Un URI est une représentation compacte d'une ressource disponible pour votre application sur un intranet ou sur Internet. La classe Uri définit les propriétés et les méthodes pour la gestion des URI, y compris l'analyse, la comparaison et la combinaison. Les propriétés de la classe Uri sont en lecture seule ; pour créer un objet modifiable, utilisez la classe UriBuilder.

Les URI relatifs (par exemple "/new/index.htm") doivent être développés par rapport à un URI de base pour qu'ils soient absolus. La méthode MakeRelative est fournie pour convertir les URI absolus en identificateurs relatifs, lorsque cela est nécessaire.

Les constructeurs Uri ne placent pas les chaînes URI dans des séquences d'échappement si la chaîne est un URI de forme correcte comprenant un identificateur de schéma.

Les propriétés Uri retournent une représentation de données réglementaire dans l'encodage avec séquence d'échappement, tous les caractères ayant des valeurs Unicode supérieures à 127 étant remplacés par leurs équivalents hexadécimaux. Pour mettre l'URI au format réglementaire, le constructeur Uri procède comme suit :

  • Convertit le modèle URI en minuscules.

  • Convertit le nom de l'hôte en minuscules.

  • Si le nom d'hôte est une adresse IPv6, l'adresse IPv6 réglementaire est utilisée. ScopeId et d'autres données IPv6 facultatives sont supprimées.

  • Supprime les numéros de port par défaut et vide.

  • Rend le chemin d'accès canonique pour les URI hiérarchiques en condensant les séquences, telles que /./, /../, //, y compris les représentations d'échappement. Notez que les représentations d'échappement ne sont pas condensées pour certains schémas.

  • Dans le cas d'URI hiérarchiques, si l'hôte n'est pas terminé par une barre oblique (/), une barre oblique est ajoutée.

  • Par défaut, tous les caractères réservés dans l'URI sont placés dans une séquence d'échappement, conformément à RFC 2396. Ce comportement change si l'analyse des IRI (International Resource Identifiers) ou de l'IDN (Nom de domaine international) est activée, auquel cas, les caractères réservés de l'URI sont placés dans une séquence d'échappement, conformément aux normes RFC 3986 et RFC 3987.

Dans le cadre de la canonisation dans le constructeur de certains schémas, les représentations d'échappement sont condensées. Les schémas pour lesquels l'URI condense des séquences d'échappement sont les suivants : fichier, http, https, net.pipe et net.tcp. Les séquences d'échappement ne sont pas condensées pour les autres schémas. Par exemple, si vous encodez en pourcentage les deux points « .. » sous la forme « %2E%2E », le constructeur d'URI condensera cette séquence pour certains schémas. L'exemple de code suivant montre un constructeur d'URI pour le schéma http.


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

Lorsque ce code est exécuté, il retourne la sortie suivante avec la séquence d'échappement condensée.


http://myUrl/
/

L'exemple de code suivant montre un constructeur d'URI pour le schéma ftp :


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

Lorsque ce code est exécuté, il retourne la sortie suivante avec la séquence d'échappement non condensée.


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

Vous pouvez transformer le contenu de la classe Uri d'une référence URI encodée avec séquence d'échappement en une référence URI lisible à l'aide de la méthode ToString. Notez que certains caractères réservés peuvent encore être placés dans une séquence d'échappement dans la sortie de la méthode ToString. Cela est destiné à prendre en charge la reconstitution non équivoque d'un URI à partir de la valeur retournée par ToString.

Certains URI comprennent un identificateur de fragment ou une requête ou les deux. Un identificateur de fragment est n'importe quel texte qui suit un symbole dièse (#), symbole exclus. Il est stocké dans la propriété Fragment. Les informations de requête sont n'importe quel texte qui suit un point d'interrogation (?) dans l'URI ; le texte de requête est stocké dans la propriété Query.

Dans .NET Framework version 1.1, si la chaîne spécifiée à un constructeur contient un schéma inconnu et "c:\", la classe URI insère "//" après les deux-points. Par exemple, l'URI xyz:c:\abc est converti en xyz://c:/abc. Dans .NET Framework version 2.0, ce comportement a été supprimé et la chaîne d'exemple est convertie en xyz:c:/abc.

RemarqueRemarque

La classe URI prend en charge l'utilisation d'adresses IP en notation ponctuée à quatre nombres dans le cas du protocole IPv4 et en notation hexadécimale utilisant le signe deux-points comme séparateur, dans le cas du protocole IPv6. N'oubliez pas d'inclure l'adresse IPv6 dans des crochets, par exemple http://[::1].

Prise en charge des IRI (International Resource Identifier)

Les adresses Web sont généralement exprimées à l'aide d'identificateurs de ressources uniformes qui se composent d'un jeu très restreint de caractères :

  • lettres ASCII majuscules et minuscules de l'alphabet anglais ;

  • chiffres de 0 à 9 ;

  • un petit nombre d'autres symboles ASCII.

Les spécifications applicables aux URI sont documentées dans les normes RFC 2396, RFC 2732, RFC 3986 et RFC 3987 publiées par l'IETF (Internet Engineering Task Force).

Face au développement d'Internet, la nécessité d'identifier les ressources à l'aide de langues autres que l'anglais se fait de plus en plus souvent ressentir. Les identificateurs répondent à ce besoin et autorisent l'utilisation de caractères non ASCII (caractères du jeu de caractères Unicode/ISO 10646) en guise d'IRI (International Resource Identifiers). Les spécifications concernant les IRI sont documentées dans la norme RFC 3987 publiée par l'IETF. L'utilisation d'IRI permet d'intégrer des caractères Unicode dans une URL.

La classe Uri existante a été étendue dans le .NET Framework v3.5, 3.0 SP1 et 2.0 SP1 pour fournir la prise en charge IRI selon la norme RFC 3987. Les utilisateurs actuels ne percevront aucune modification dans le comportement de .NET Framework 2.0, à moins qu'ils n'activent spécifiquement des IRI. Cela garantit la compatibilité des applications avec les versions antérieures du .NET Framework.

Pour activer la prise en charge des IRI, la modification suivante est requise :

  • Précisez si vous voulez appliquer l'analyse de l'IDN (Internationalized Domain Name) au nom de domaine et des règles d'analyse d'IRI. Cela se fait dans le fichier machine.config ou app.config. Ajoutez par exemple ce qui suit :

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

L'activation de l'IDN permet de convertir toutes les étiquettes Unicode d'un nom de domaine en leurs équivalents Punycode. Les noms Punycode contiennent uniquement des caractères ASCII et commencent toujours par le préfixe xn--. L'objectif est de prendre en charge des serveurs DNS existants sur Internet, étant donné que la plupart des serveurs DNS ne prennent en charge que des caractères ASCII (consultez RFC 3940).

L'activation des IRI et des IDN affecte la valeur de la propriété Uri.DnsSafeHost. Elle peut également modifier le comportement des méthodes Equals, OriginalString, GetComponents et IsWellFormedOriginalString.

Il existe trois valeurs possibles pour l'IDN selon les serveurs DNS utilisés :

  • idn enabled = All

    Cette valeur convertit tous les noms de domaine Unicode en leurs équivalents Punycode (noms IDN).

  • idn enabled = AllExceptIntranet

    Cette valeur convertit tous les noms de domaine Unicode ne se trouvant pas sur l'Intranet local pour utiliser les équivalents Punycode (noms IDN). Dans ce cas, pour gérer des noms internationaux sur l'Intranet local, les serveurs DNS utilisés pour l'Intranet doivent prendre en charge la résolution de noms Unicode.

  • idn enabled = None

    Cette valeur ne convertit aucun nom de domaine Unicode pour utiliser Punycode. Il s'agit de la valeur par défaut cohérente avec le comportement de la version 2.0 du .NET Framework.

L'activation de l'analyse IRI ((iriParsing enabled = true) permet une normalisation et une vérification des caractères selon les règles IRI les plus récentes de RFC 3986 et RFC 3987. La valeur par défaut est false et effectuera la vérification de la normalisation et des caractères d'après les normes RFC 2396 et RFC 2732 (pour les littéraux IPv6).

Le traitement des IRI et des IDN dans la classe Uri peut également être contrôlé à l'aide des classes de paramètre de configuration System.Configuration.IriParsingElement, System.Configuration.IdnElement et System.Configuration.UriSection. Le paramètre System.Configuration.IriParsingElement active ou désactive le traitement des IRI dans la classe Uri. Le paramètre System.Configuration.IdnElement active ou désactive le traitement des IDN dans la classe Uri. Le paramètre System.Configuration.IriParsingElement contrôle également indirectement les IDN. Le traitement des IRI doit être activé pour que le traitement des IDN soit possible. Si le traitement des IRI est désactivé, celui des IDN aura pour valeur le paramètre par défaut, auquel cas le comportement de .NET Framework 2.0 sera utilisé pour la compatibilité et les noms IDN ne seront pas utilisés.

Le paramètre de configuration de System.Configuration.IriParsingElement et System.Configuration.IdnElement est lu une fois au moment de la construction de la première classe System.Uri. Les modifications apportées ultérieurement aux paramètres de configuration sont ignorées.

La classe System.GenericUriParser a également été étendue pour autoriser la création d'un analyseur personnalisable qui prend en charge les IRI et les IDN. Le comportement d'un objet System.GenericUriParser est spécifié en passant une combinaison d'opérations de bits des valeurs disponible dans l'énumération System.GenericUriParserOptions au constructeur System.GenericUriParser. Le type GenericUriParserOptions.IriParsing indique que l'analyseur prend en charge les règles d'analyse spécifiées dans RFC 3987 pour les IRI (International Resource Identifiers). L'utilisation d'IRI est dictée par les valeurs de configuration évoquées précédemment.

Le type GenericUriParserOptions.Idn indique que l'analyseur prend en charge l'analyse des IDN (Internationalized Domain Name) des noms d'hôte. L'utilisation d'IDN est dictée par les valeurs de configuration évoquées précédemment.

Considérations sur les performances

Si vous utilisez un fichier Web.config qui contient des URI pour initialiser votre application, le traitement des URI prend plus de temps si leurs identificateurs de schéma ne sont pas standard. Dans ce cas, initialisez les parties affectées de votre application lorsque les URI sont requis, pas au démarrage.

Remarques à l'attention des appelants

Pour des raisons de sécurité, soyez prudent lorsque votre application accepte des instances de Uri provenant de sources non fiables et avec dontEscape défini à true. Vous pouvez vérifier la validité d'une chaîne d'URI en appelant la méthode IsWellFormedOriginalString.

L'exemple suivant crée une instance de la classe Uri et l'utilise pour créer une instance de WebRequest.


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

WebRequest wr = WebRequest.Create(siteUri);



.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : 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 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft