Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Uri-Klasse

Stellt eine Objektdarstellung eines URIs (Uniform Resource Identifier) und einfachen Zugriff auf die Teile des URIs bereit.

System.Object
  System.Uri

Namespace:  System
Assembly:  System (in System.dll)
[SerializableAttribute]
[TypeConverterAttribute(typeof(UriTypeConverter))]
public class Uri : ISerializable

Der Uri-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Uri(String) Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI.
Geschützte Methode Uri(SerializationInfo, StreamingContext) Initialisiert eine neue Instanz der Uri-Klasse aus den angegebenen Instanzen der SerializationInfo-Klasse und der StreamingContext-Klasse.
Öffentliche Methode Unterstützt von XNA Framework Uri(String, Boolean) Veraltet. Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI, wobei die Verwendung der Escapezeichen explizit gesteuert werden kann.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Uri(String, UriKind) Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI. Mit diesem Konstruktor können Sie angeben, ob die URI-Zeichenfolge ein relativer URI, ein absoluter URI oder unbestimmt ist.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Uri(Uri, String) Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage des angegebenen Basis-URIs und der relativen URI-Zeichenfolge.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Uri(Uri, Uri) Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage der Kombination einer angegebenen Uri-Instanz als Basis und einer relativen Uri-Instanz.
Öffentliche Methode Unterstützt von XNA Framework Uri(Uri, String, Boolean) Veraltet. Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage des angegebenen Basis-URIs und des angegebenen relativen URIs mit expliziter Steuerung der Escapesequenzen.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif AbsolutePath Ruft den absoluten Pfad des URIs ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif AbsoluteUri Ruft den absoluten URI ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework Authority Ruft den DNS-Hostnamen (Domain Name System) oder die IP-Adresse und die Anschlussnummer für einen Server ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif DnsSafeHost Ruft einen Hostnamen ohne Escapezeichen ab, der sicher für die DNS-Auflösung verwendet werden kann.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Fragment Ruft das mit Escapezeichen versehene URI-Fragment ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Host Ruft die Hostkomponente dieser Instanz ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework HostNameType Ruft den Typ des im URI angegebenen Hostnamens ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif IsAbsoluteUri Ruft ab, ob die Uri-Instanz absolut ist.
Öffentliche Eigenschaft Unterstützt von XNA Framework IsDefaultPort Ruft ab, ob der Portwert im URI der Standardwert für dieses Schema ist.
Öffentliche Eigenschaft Unterstützt von XNA Framework IsFile Ruft einen Wert ab, der angibt, ob der angegebene Uri ein Datei-URI ist.
Öffentliche Eigenschaft Unterstützt von XNA Framework IsLoopback Ruft ab, ob der angegebene Uri auf den lokalen Host verweist.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif IsUnc Ruft ab, ob der angegebene Uri einen UNC-Pfad (Universal Naming Convention) darstellt.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif LocalPath Ruft die Darstellung eines Dateinamens im lokalen Betriebssystem ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif OriginalString Ruft die ursprüngliche URI-Zeichenfolge ab, die an den Uri-Konstruktor übergeben wurde.
Öffentliche Eigenschaft Unterstützt von XNA Framework PathAndQuery Ruft die durch ein Fragezeichen (?) getrennten Werte der AbsolutePath-Eigenschaft und der Query-Eigenschaft ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Port Ruft die Anschlussnummer dieses URIs ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Query Ruft im angegebenen URI enthaltene Abfrageinformationen ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Scheme Ruft den Namen des Schemas für diesen URI ab.
Öffentliche Eigenschaft Unterstützt von XNA Framework Segments Ruft ein Array mit den Pfadsegmenten ab, aus denen sich der angegebene URI zusammensetzt.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif UserEscaped Gibt an, dass die URI-Zeichenfolge vor dem Erstellen der Uri-Instanz vollständig mit Escapezeichen versehen war.
Öffentliche Eigenschaft Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif UserInfo Ruft Benutzernamen, Kennwort oder weitere benutzerspezifische Informationen ab, die dem angegebenen URI zugeordnet sind.
Zum Seitenanfang
  Name Beschreibung
Geschützte Methode Unterstützt von XNA Framework Canonicalize Infrastruktur. Veraltet. Konvertiert den intern gespeicherten URI in kanonische Form.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework CheckHostName Bestimmt, ob der angegebene Hostname ein gültiger DNS-Name ist.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif CheckSchemeName Bestimmt, ob der angegebene Schemaname gültig ist.
Geschützte Methode Unterstützt von XNA Framework CheckSecurity Infrastruktur. Veraltet. Das Aufrufen dieser Methode hat keine Auswirkung.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Compare Vergleicht die angegebenen Teile von zwei URIs gemäß den angegebenen Vergleichsregeln.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Equals Überprüft zwei Uri-Instanzen auf Gleichheit. (Überschreibt Object.Equals(Object).)
Geschützte Methode Unterstützt von XNA Framework Escape Infrastruktur. Veraltet. Konvertiert alle unsicheren oder reservierten Zeichen in der Pfadkomponente in die entsprechenden Hexadezimaldarstellungen.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif EscapeDataString Konvertiert eine Zeichenfolge in eine Darstellung mit Escapezeichen.
Geschützte Methode Statischer Member Unterstützt von XNA Framework EscapeString Veraltet. Konvertiert eine Zeichenfolge in eine Darstellung mit Escapezeichen.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif EscapeUriString Konvertiert eine URI-Zeichenfolge in eine Darstellung mit Escapezeichen.
Geschützte Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif FromHex Ruft den Dezimalwert einer Hexadezimalziffer ab.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif GetComponents Ruft die angegebenen Komponenten der aktuellen Instanz mit dem angegebenen Escapeverhalten für Sonderzeichen ab.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif GetHashCode Ruft den Hashcode für den URI ab. (Überschreibt Object.GetHashCode().)
Öffentliche Methode Unterstützt von XNA Framework GetLeftPart Ruft den angegebenen Teil einer Uri-Instanz ab.
Geschützte Methode GetObjectData Gibt die Daten zurück, die zum Serialisieren der aktuellen Instanz benötigt werden.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework HexEscape Konvertiert ein angegebenes Zeichen in die entsprechende Hexadezimaldarstellung.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework HexUnescape Konvertiert eine angegebene Hexadezimaldarstellung eines Zeichens in das Zeichen selbst.
Geschützte Methode Unterstützt von XNA Framework IsBadFileSystemCharacter Infrastruktur. Veraltet. Ruft ab, ob ein Zeichen in einem Dateisystemnamen ungültig ist.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif IsBaseOf Bestimmt, ob die aktuelle Uri-Instanz eine Basis der angegebenen Uri-Instanz ist.
Geschützte Methode Statischer Member Unterstützt von XNA Framework IsExcludedCharacter Infrastruktur. Veraltet. Ruft ab, ob das angegebene Zeichen mit Escapezeichen versehen werden soll.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif IsHexDigit Bestimmt, ob ein angegebenes Zeichen eine gültige Hexadezimalziffer ist.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework IsHexEncoding Bestimmt, ob ein Zeichen in einer Zeichenfolge hexadezimal codiert ist.
Geschützte Methode Unterstützt von XNA Framework IsReservedCharacter Infrastruktur. Veraltet. Ruft ab, ob das angegebene Zeichen ein reserviertes Zeichen ist.
Öffentliche Methode Unterstützt von XNA Framework IsWellFormedOriginalString Gibt an, ob die zum Erstellen dieses Uri verwendete Zeichenfolge wohlgeformt war und keine weiteren Escapezeichen eingefügt werden müssen.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif IsWellFormedUriString Gibt an, ob eine Zeichenfolge wohlgeformt ist, indem versucht wird, einen URI aus der Zeichenfolge zu erstellen. Es wird sichergestellt, dass keine weiteren Escapezeichen in die Zeichenfolge eingefügt werden müssen.
Öffentliche Methode Unterstützt von XNA Framework MakeRelative Veraltet. Bestimmt den Unterschied zwischen zwei Uri-Instanzen.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif MakeRelativeUri Bestimmt den Unterschied zwischen zwei Uri-Instanzen.
Geschützte Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte Methode Unterstützt von XNA Framework Parse Infrastruktur. Veraltet. Analysiert den URI der aktuellen Instanz, um sicherzustellen, dass alle für einen gültigen URI erforderlichen Teile enthalten sind.
Öffentliche Methode Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif ToString Ruft eine kanonische Zeichenfolgenentsprechung der angegebenen Uri-Instanz ab. (Überschreibt Object.ToString().)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif TryCreate(String, UriKind, Uri) Erstellt mit der angegebenen String-Instanz und einer UriKind einen neuen Uri.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif TryCreate(Uri, String, Uri) Erstellt mit der angegebenen Basis und den relativen String-Instanzen einen neuen Uri.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif TryCreate(Uri, Uri, Uri) Erstellt mit der angegebenen Basis und den relativen Uri-Instanzen einen neuen Uri.
Geschützte Methode Unterstützt von XNA Framework Unescape Infrastruktur. Veraltet. Konvertiert die angegebene Zeichenfolge, indem alle Escapesequenzen durch die entsprechende Darstellung ohne Escapezeichen ersetzt werden.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif UnescapeDataString Konvertiert eine Zeichenfolge in eine Darstellung ohne Escapezeichen.
Zum Seitenanfang
  Name Beschreibung
Öffentlicher Operator Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Equality Bestimmt, ob zwei Uri-Instanzen denselben Wert haben.
Öffentlicher Operator Statischer Member Unterstützt von XNA Framework txt7706a.PortableClassLibrary(de-de,VS.100).gif Inequality Bestimmt, ob zwei Uri-Instanzen verschiedene Werte haben.
Zum Seitenanfang
  Name Beschreibung
Öffentliches Feld Statischer Member Unterstützt von XNA Framework SchemeDelimiter Gibt die Zeichen an, die das Schema des Kommunikationsprotokolls vom Adressteil des URIs trennen. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeFile Gibt an, dass der URI ein Zeiger auf eine Datei ist. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeFtp Gibt an, dass auf den URI über FTP (File Transfer Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeGopher Gibt an, dass auf den URI über das Gopher-Protokoll zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeHttp Gibt an, dass auf den URI über HTTP (Hypertext Transfer Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeHttps Gibt an, dass auf den URI über HTTPS (Secure Hypertext Transfer Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeMailto Gibt an, dass der URI eine E-Mail-Adresse ist und der Zugriff über SMTP (Simple Mail Transport Protocol) erfolgt. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeNetPipe Gibt an, dass auf den URI über das von Windows Communication Foundation (WCF) verwendete NetPipe-Schema zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeNetTcp Gibt an, dass auf den URI über das von Windows Communication Foundation (WCF) verwendete NetTcp-Schema zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeNews Gibt an, dass der URI eine Internetnewsgroup ist, auf die über NNTP (Network News Transport Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework UriSchemeNntp Gibt an, dass der URI eine Internetnewsgroup ist, auf die über NNTP (Network News Transport Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Zum Seitenanfang
  Name Beschreibung
Explizite Schnittstellenimplementierung Private Methode ISerializable.GetObjectData Gibt die Daten zurück, die zum Serialisieren der aktuellen Instanz benötigt werden.
Zum Seitenanfang

Ein URI ist eine kompakte Darstellung einer Ressource, die einer Anwendung im Intranet oder im Internet zur Verfügung steht. Die Uri-Klasse definiert die Eigenschaften und Methoden zur Behandlung von URIs. Dazu gehören Analysieren, Vergleichen und Verbinden. Die Eigenschaften der Uri-Klasse sind schreibgeschützt. Ein Objekt, das geändert werden kann, erstellen Sie mithilfe der UriBuilder-Klasse.

Relative URIs (z. B. "/new/index.htm") müssen in Bezug auf ein Basis-URI erweitert werden, damit sie absolut werden. Die MakeRelative-Methode steht zur Verfügung, um bei Bedarf absolute URIs in relative URIs zu konvertieren.

Die Uri-Konstruktoren versehen eine URI-Zeichenfolge nicht mit Escapezeichen, wenn die Zeichenfolge des URIs einschließlich Schemabezeichner formal korrekt ist.

Die Uri-Eigenschaften geben eine kanonische Darstellung der Daten mit Escapecodierung zurück, wobei alle Zeichen mit Unicode-Werten über 127 durch ihre hexadezimale Entsprechung ersetzt werden. Zum Überführen eines URIs in kanonische Form führt der Uri-Konstruktor folgende Schritte durch:

  • Das URI-Schema wird in Kleinbuchstaben konvertiert.

  • Konvertiert den Hostnamen in Kleinschreibung.

  • Wenn der Hostname eine IPv6-Adresse ist, wird die kanonische IPv6-Adresse verwendet. ScopeID und andere optionale IPv6-Daten werden entfernt.

  • Standardanschlussnummern und leere Anschlussnummern werden entfernt.

  • Kanonisiert den Pfad für hierarchische URIs, indem Sequenzen wie /./, /../, //, einschließlich mit Escapezeichen versehener Darstellungen, komprimiert werden. Beachten Sie, dass für einige Schemas die mit Escapezeichen versehenen Darstellungen nicht komprimiert werden.

  • Wenn der Host für hierarchische URIs nicht mit einem Schrägstrich (/) endet, wird dieser hinzugefügt.

  • Standardmäßig werden alle reservierten Zeichen im URI in Übereinstimmung mit RFC 2396 als Escapezeichen angegeben. Dieses Verhalten ändert sich, wenn die Analyse von International Resource Identifier oder International Domain Name aktiviert wird. In diesem Fall werden reservierte Zeichen im URI in Übereinstimmung mit RFC 3986 und RFC 3987 mit Escapezeichen versehen.

Im Rahmen der Kanonisierung im Konstruktor für einige Schemas werden mit Escapezeichen versehene Darstellungen komprimiert. Zu den Schemas, für die der URI-Konstruktor mit Escapezeichen versehene Sequenzen komprimiert, zählen Folgende: file, http, https, net.pipe und net.tcp. Für alle anderen Schemas werden mit Escapezeichen versehene Sequenzen nicht komprimiert. Wenn Sie beispielsweise die beiden Punkte ".." mit dem Prozentsymbol als "%2E%2E" codieren, komprimiert der URI-Konstruktor diese Sequenz für einige Schemas. Im folgenden Beispiel wird ein URI-Konstruktor für das http-Schema veranschaulicht.


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

Bei Ausführung dieses Codes wird die folgende Ausgabe erhalten, in der die mit Escapezeichen versehene Sequenz komprimiert ist.


http://myUrl/
/

Im folgenden Codebeispiel wird ein URI-Konstruktor für das ftp-Schema veranschaulicht.


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

Bei Ausführung dieses Codes wird die folgende Ausgabe erhalten, in der die mit Escapezeichen versehene Sequenz nicht komprimiert ist.


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

Der Inhalt der Uri-Klasse kann mit der ToString-Methode von einem Verweis auf einen mit Escapezeichen codierten URI in einen Verweis auf einen lesbaren URI umgewandelt werden. Beachten Sie, dass einige reservierte Zeichen in der Ausgabe der ToString-Methode immer noch mit Escapezeichen versehen sein können. Auf diese Weise wird die unmissverständliche Rekonstruktion eines URIs des Werts unterstützt, der von ToString zurückgegeben wird.

Einige URIs schließen einen Fragmentbezeichner oder eine Abfrage oder beides ein. Bei einem Fragmentbezeichner handelt es sich um Text, der einem Nummernzeichen (#) folgt, ohne das Nummernzeichen einzuschließen. Der Fragmenttext wird in der Fragment-Eigenschaft gespeichert. Bei Abfrageinformationen handelt es sich um Text, der im URI auf ein Fragezeichen (?) folgt. Der Abfragetext wird in der Query-Eigenschaft gespeichert.

In .NET Framework, Version 1.1, fügt die Uri-Klasse nach dem Doppelpunkt "//" ein, wenn die für einen Konstruktor angegebene Zeichenfolge ein unbekanntes Schema und "c:\" enthält. Zum Beispiel wird der URI xyz:c:\abc in xyz://c:/abc konvertiert. In .NET Framework, Version 2.0, wurde dieses Verhalten entfernt, und die Beispielzeichenfolge wird in xyz:c:/abc konvertiert.

HinweisHinweis

Die URI-Klasse unterstützt bei der Verwendung von IP-Adressen sowohl die Quadschreibweise für IPv4 als auch die Hexadezimalschreibweise für IPv6. IPv6-Adressen müssen in eckigen Klammern angegeben werden, z. B. http://[::1].

IRI-Unterstützung (International Resource Identifier)

Webadressen werden typischerweise mit URIs (Uniform Resource Identifiers) ausgedrückt, die aus einem stark einschränkten Zeichensatz bestehen:

  • ASCII-Groß- und Kleinbuchstaben des englischen Alphabets.

  • Ziffern von 0 bis 9.

  • Eine kleine Anzahl anderer ASCII-Symbole.

Die Spezifikationen für URIs sind in RFC 2396, RFC 2732, RFC 3986 und RFC 3987 dokumentiert, die von der IETF (Internet Engineering Task Force) veröffentlicht wurden.

Mit dem stetigen Anwachsen des Internets müssen Ressourcen zunehmend auch in anderen Sprachen als Englisch angegeben werden. Bezeichner, die dieser Anforderung gerecht werden und Nicht-ASCII-Zeichen (Zeichen im Unicode/ISO 10646-Zeichensatz) zulassen, sind IRIs (International Resource Identifiers). Die Spezifikationen für IRIs sind in RFC 3987 dokumentiert, die von der IETF veröffentlicht wurde. Wenn IRIs verwendet werden, kann eine URL auch Unicode-Zeichen enthalten.

Die vorhandene Uri-Klasse wurde in .NET Framework v3.5, 3.0 SP1 und 2.0 SP1 erweitert und bietet nun IRI-Unterstützung (International Resource Identifier) gemäß RFC 3987. Aktuelle Benutzer werden keinen Unterschied zum .NET Framework 2.0-Verhalten feststellen, es sei denn, sie aktivieren IRI explizit. Damit wird die Anwendungskompatibilität mit früheren Versionen von .NET Framework gewährleistet.

Zum Aktivieren der Unterstützung für IRI muss die folgende Änderung vorgenommen werden:

  • Geben Sie an, ob IDN-Analysen (Internationalized Domain Name) auf den Domänennamen angewendet und ob IRI-Analyseregeln beachtet werden sollen. Dies können Sie in der Datei machine.config oder in der Datei app.config festlegen. Fügen Sie beispielsweise Folgendes hinzu:

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

Durch das Aktivieren von IDN werden alle Unicode-Bezeichnungen in einem Domänennamen in ihre Punycode-Entsprechungen konvertiert. Punycode-Namen enthalten nur ASCII-Zeichen und beginnen immer mit dem Präfix xn--. Der Grund dafür besteht in der Unterstützung vorhandener DNS-Server im Internet, da die meisten DNS-Server nur ASCII-Zeichen unterstützen (siehe RFC 3940).

Das Aktivieren von IRI und IDN wirkt sich auf den Wert der Uri.DnsSafeHost-Eigenschaft aus. Das Aktivieren von IRI und IDN kann auch das Verhalten der Methoden Equals, OriginalString, GetComponents und IsWellFormedOriginalString ändern.

In Abhängigkeit von den verwendeten DNS-Servern gibt es drei mögliche Werte für IDN:

  • idn enabled = All

    Durch diesen Wert werden alle Unicode-Domänennamen in ihre Punycode-Entsprechungen (IDN-Namen) konvertiert.

  • idn enabled = AllExceptIntranet

    Durch diesen Wert werden alle Unicode-Domänennamen außerhalb des lokalen Intranets so konvertiert, dass die Punycode-Entsprechungen (IDN-Namen) verwendet werden. Wenn internationale Namen im lokalen Intranet verarbeitet werden sollen, müssen die DNS-Server im Intranet die Auflösung von Unicode-Namen unterstützen.

  • idn enabled = None

    Durch diesen Wert werden keine Unicode-Domänennamen in ihre Punycode-Entsprechungen konvertiert. Dies ist der Standardwert, der dem .NET Framework 2.0-Verhalten entspricht.

Durch Aktivieren der IRI-Analyse (iriParsing enabled = true) werden Normalisierung und Zeichenüberprüfung nach den letzten IRI-Regeln in RFC 3986 und RFC 3987 ausgeführt. Der Standardwert ist false, bei dem Normalisierung und Zeichenüberprüfung gemäß RFC 2396 und RFC 2732 (für IPv6-Literale) ausgeführt werden.

Die IRI- und IDN-Verarbeitung in der Uri-Klasse kann auch mithilfe der Klassen System.Configuration.IriParsingElement, System.Configuration.IdnElement und System.Configuration.UriSection gesteuert werden, die Konfigurationseinstellungen enthalten. Die Einstellung System.Configuration.IriParsingElement aktiviert oder deaktiviert die IRI-Verarbeitung in der Uri-Klasse. Die Einstellung System.Configuration.IdnElement aktiviert oder deaktiviert die IDN-Verarbeitung in der Uri-Klasse. Mithilfe der Einstellung System.Configuration.IriParsingElement wird IDN auch indirekt gesteuert. Die IRI-Verarbeitung muss aktiviert sein, damit IDN-Verarbeitungsvorgänge ausgeführt werden können. Wenn die IRI-Verarbeitung deaktiviert ist, wird die IDN-Verarbeitung auf die Standardeinstellung festgelegt, in der das .NET Framework 2.0-Verhalten aus Kompatibilitätsgründen verwendet wird, und es werden keine IDN-Namen verwendet.

Die Konfigurationseinstellung für das System.Configuration.IriParsingElement und das System.Configuration.IdnElement wird einmal gelesen, wenn die erste System.Uri-Klasse erstellt wird. Änderungen an Konfigurationseinstellungen nach diesem Zeitpunkt werden ignoriert.

Die System.GenericUriParser-Klasse wurde außerdem so erweitert, dass das Erstellen eines anpassbaren Parsers möglich ist, der IRI und IDN unterstützt. Das Verhalten eines System.GenericUriParser-Objekts wird angegeben, indem eine bitweise Kombination der in der System.GenericUriParserOptions-Enumeration verfügbaren Werte an den System.GenericUriParser-Konstruktor übergeben wird. Der GenericUriParserOptions.IriParsing-Typ gibt an, dass der Parser die in RFC 3987 für IRI (International Resource Identifiers) angegebenen Analyseregeln unterstützt. Durch die oben beschriebenen Konfigurationswerte wird bestimmt, ob IRI verwendet wird.

Der GenericUriParserOptions.Idn-Typ gibt an, dass der Parser IDN-Analysen (Internationalized Domain Name) von Hostnamen unterstützt. Durch die oben beschriebenen Konfigurationswerte wird bestimmt, ob IDN verwendet wird.

Überlegungen zur Leistung

Wenn Sie eine Datei Web.config verwenden, die URIs zum Initialisieren Ihrer Anwendung enthält, wird die Dauer zum Verarbeiten der URIs zusätzlich verlängert, wenn die jeweiligen Schemabezeichner vom Standard abweichen. Initialisieren Sie die betroffenen Teile der Anwendung in diesem Fall erst dann, wenn die URIs benötigt werden, und nicht schon beim Start der Anwendung.

Hinweise zu Aufrufern

Aufgrund dieser Sicherheitsbedenken sollten Sie bei der Anwendung mit Umsicht vorgehen, wenn Sie Uri-Instanzen von nicht vertrauenswürdigen Quellen akzeptieren, und dontEscape auf true festgelegt ist. Sie können eine URI-Zeichenfolge auf Gültigkeit prüfen, indem Sie die IsWellFormedOriginalString-Methode aufrufen.

Im folgenden Beispiel wird eine Instanz der Uri-Klasse erstellt und für die Erstellung einer WebRequest-Instanz verwendet.


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

WebRequest wr = WebRequest.Create(siteUri);



.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ