This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

Uri الفئة

Visual Studio 2010

يوفر تمثيل كائن هو معرّف موارد منتظم (URI) و يسهل الوصول إلى الأجزاء من URI.

مساحة الاسم:  System
التجميع:  System (في System.dll)

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

URI هو تمثيل مضغوط من أحد الموارد متوفر للتطبيق الخاص بك تشغيل إنترنت أو إنترانت. Uri فئة تعريف الخصائص والأساليب لمعالجة محددات، بما في ذلك تحليل ومقارنة، ودمج. Uri خصائص الفئة للقراءة فقط؛ إلى إنشاء كائن قابل للتعديل، استخدم UriBuilderفئة.

محددات نسبي (على سبيل المثال، "/جديد/فهرس.htm") يجب موسّع تتعلق ب URI أساسية حيث تكون مطلقة. MakeRelative أسلوب هو لتحويل UR المطلق هو إلى UR النسبي هو عند الضرورية.

Uri لا الهروب المنشئات على سلاسل URI إذا كانت السلسلة URI منسق بشكل جيد بما في ذلك معرّف نظام.

Uri ترجع الخصائص تمثيل بيانات المتعارف عليه في ترميز escaped مع الجميع حرف/ حروف التي لها قيم Unicode أكبر من 127 استبداله ببها المكافئة الست عشري. لوضع URI في النموذج المتعارف عليه، Uriالدالة الإنشائية يقوم بإجراء الخطوات التالية:

  • قم بتحويل نظام URI إلى أحرف صغيرة.

  • قم بتحويل اسم مضيف إلى أحرف صغيرة.

  • إذا كان اسم مضيف هو العنوان IPv6، العنوان IPv6 المتعارف عليه هو المستخدمة. ScopeId و غير ذلك تتم تمت إزالته بيانات IPv6 اختيارية.

  • قم بإزالة الافتراضي و إفراغ أرقام المنافذ.

  • canonicalizes مسار لمحددات الهرمية بضغط تتابع مثل كـ/./////، بما في ذلك escaped تمثيلات. ملاحظة أن هناك بعض الأنظمة التي تمثل escaped هي غير مضغوطة.

  • لهيكلية UR هو، إذا كان مضيف هو لا ينتهي بشرطة مائلة للأمام (/)، واحد هو تمت الإضافة.

  • بواسطة يتم escaped أية أحرف محجوزة في URI الخاص شكل افتراضي مع RFC 2396. Th هو يتغير سلوك في حالة توزيع الدولي معرفات الموارد أو اسم مجال الدولي هو الممكنة في الحالة التي يتم escaped الأحرف المحجوزة في URI بالتوافق مع RFC 3986 RFC 3987.

كـ جزءا من التوافق في المنشئ لبعض الأنظمة، يتم ضغط تمثيلات escaped. الأنظمة التي سيتم ضغط URI تسلسلات escaped تضمين ما يلي: ملف http، https، net.pipe و net.tcp. بالنسبة لكافة غير ذلك لم يتم ضغط الأنظمة، وتسلسل escaped. فعلى سبيل المثال: إذا كانت النسبة المئوية بين النقاط يرمّز ".." كـ "2E%% 2E" ثم الدالة الإنشائية URI الخاص ضغط هذا التسلسل لبعض الأنظمة. ل مثال، يظهر نموذج تعليمات برمجية التالي على الدالة الإنشائية URI لنظام http.


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


عند ترتيب هو رمز هو التنفيذ، تقوم بإرجاع ضغط التالي إخراج بتسلسل escaped.


http://myUrl/
/


يوضح مثال التعليمة البرمجية التالية على الدالة الإنشائية URI لنظام ftp:


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


عند ترتيب هو رمز هو التنفيذ، تقوم بإرجاع ما يلي إخراج بتسلسل escaped غير مضغوطة.


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


يمكنك تحويل المحتويات Uriفئة من مرجع URI هروب ترميز إلى مرجع URI قابلة لقراءة باستخدام ToStringالأسلوب. لاحظ أنه قد يكون escaped بعض حرف/ حروف المحجوزة لا تزال في الإخراج ToStringالأسلوب. Th هو هو لدعم reconstruction الغموض من URI من القيمة التي يتم إرجاعها بواسطة ToString.

تضمين بعض محددات معرّف جزء أو استعلام أو كلاهما. هو معرّف جزء أي نص يتبع رقم العلامة (#)، بما في ذلك لا رقم تسجيل; الجزء يتم تخزين النص في Fragmentخاصية. الاستعلام عن معلومات هو أي نص يتبع علامة الاستفهام (؟) في URI; نص الاستعلام هو المخزنة في Queryخاصية.

في.NET Framework الإصدار 1.1، إذا كان سلسلة المعين إلى يحتوي على الدالة الإنشائية على نظام غير معروف و "c:\"، إدراج فئة Uri "//" بعد النقطتين. على سبيل المثال، URI xyz:c:\abcهو تحويلها إلى xyz://c:/abc. في.NET Framework الإصدار 2.0، th هو تمت تمت إزالته سلوك، والسلسلة المثال هو محولها إلى xyz:c:/abc.

ملاحظةملاحظة

URI فئة يعتمد استخدام عناوين IP في كلا معرّف رباعي-منهج للبروتوكول IPv4 والسداسي عشر نقطتين للبروتوكول IPv6. تذكر إلى قم بتضمين العنوان IPv6 في أقواس مربعة، كما في http://[::1].

دعم دولي لمعرف مورد

يتم عادة قيمتها عناوين ويب باستخدام معرفات مورد منتظم تتكون من التعيين مقيدة جداً من حرف/ حروف:

  • أعلى و أحرف صغيرة ASCII من الأبجدية الإنجليزية.

  • الأرقام من 0 إلى 9.

  • عدد قليل من رموز ASCII غير ذلك.

المواصفات لمحددات موثقة في RFC 2396 RFC 2732، RFC 3986 و 3987 RFC المنشورة من قبل إنترنت هندسة Task Force (IETF).

مع نمو الإنترنت، هناك حاجة الزيادة إلى تعريف موارد باستخدام لغات غير الإنكليزية. معرفات التي تسهل هذه الحاجة والسماح لغير ASCII حرف/ حروف (حرف/ حروف في 10646 Unicode/ISO التعيين أحرف) تعرف "معرفات الموارد الدولية" (السوسن). يتم توثيق المواصفات السوسن في 3987 RFC المنشورة من قبل IETF. يسمح استخدام السوسن URL إلى يحتوي على أحرف Unicode.

موجود Uriتم توسيع الفئة في v3.5 برنامج.NET Framework، الإصدار 3.0 SP1، و 2.0 من حزمة الخدمة SP1 الخاصة بتوفير دعم IRI استناداً إلى RFC 3987. لن تشاهد المستخدمين الحاليين أي تغيير عن سلوك برنامج.NET Framework 2.0 إلا إذا كانت خاصة بتمكين IRI. يضمن هذا توافق التطبيق مع إصدارات سابقة من برنامج NET Framework..

لتمكين الدعم ل IRI , التغييران التاليان مطلوبان :

  1. أضف السطر التالي إلى ملف machine.config تحت الدليل .NET Framework 2.0..

    <section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    
    
  2. تحدد ما إذا يجب تطبيق معالجة اسم المجال العالمي (IDN) على اسم المجال وما إذا يجب تطبيق قواعد معالجة IRI. يمكن إجراء ذلك في machine.config أو في ملف app.config. على سبيل المثال، أضف ما يلي:

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

تشغيل IDN سيحول كل تسميات Unicode في اسم مجال إلى معادلات Punycode الخاصة بهم. أسماء Punycode تحتوي على أحرف ASCII فقط وبدء دوماً مع بادئة xn--. والسبب في ذلك دعم خوادم DNS الموجودة في الإنترنت لأن معظم خوادم DNS فقط تدعم أحرف ASCII (راجع RFC 3940).

تمكين IRI و IDN يؤثر على القيمة Uri.DnsSafeHostخاصية. تمكين IRI و IDN يمكن أيضا تغيير سلوك Equals، OriginalString، GetComponents، و IsWellFormedOriginalStringالأساليب.

هناك ثلاث قيم ممكنة لـ IDN حسب خوادم DNS المستخدمة:

  • idn enabled = All

    سيتم تحويل هذه القيمة لأية أسماء مجال Unicode إلى معادلات Punycode الخاصة بها (أسماء IDN).

  • idn enabled = AllExceptIntranet

    ستقوم هذه القيمة بتحويل كل أسماء مجال Unicode غير موجودة على شبكة انترانت محلية لاستخدام معادلاتها Punycode (أسماء IDN). في هذه الحالة لمعالجة الأسماء العالمية على إنترانت المحلية، يجب على خوادم DNS المستخدمة لإنترانت دعم Unicode لتحليل اسم.

  • idn enabled = None

    هذه القيمة لا تحول أية أسماء مجال Unicode لاستخدام Punycode. هذه القيمة الافتراضية تتوافق مع سلوك .NET Framework 2.0.

ممكّن تحليل IRI (ممكّن iriParsing = true) هل تسوية وحرف وفقا لقواعد IRI أحدث في RFC 3986 و RFC 3987. القيمة الإفتراضية هي false و يقوم بإجراء تسوية و التحقق من الحرف استناداً إلى RFC 2396 و 2732 RFC (للقيم الحرفية IPv6).

معالجة IRI و IDN في Uriفئة يمكن التحكم باستخدام أيضا System.Configuration.IriParsingElement، System.Configuration.IdnElement، و System.Configuration.UriSectionتكوين إعداد فئات. System.Configuration.IriParsingElement إعداد بتمكين أو تعطيل معالجة في IRI Uriفئة. System.Configuration.IdnElement إعداد بتمكين أو تعطيل معالجة في IDN Uriفئة. System.Configuration.IriParsingElement يتحكم إعداد أيضا بشكل غير مباشر IDN. يجب ممكّن معالجة IRI IDN معالجة إلى تكون ممكنة. إذا معالجة IRI هو dهوabled، ثم معالجة IDN سيتم تعيين إلى مكان الإعدادات الافتراضية سلوك برنامج.NET Framework 2.0 هو المستخدمة للتوافق و IDN أسماء غير مستخدمة.

تعيين تكوين System.Configuration.IriParsingElementو System.Configuration.IdnElementسيصبح للقراءة مرة واحدة عند أول System.Uriالفئة هو بناء. تغييرات إلى ويتم تجاهل إعدادات تكوين بعد ذلك الوقت.

System.GenericUriParser كما تم توسيع الفئة إلى السماح بإنشاء محلل cusإلىmizable يعتمد IRI IDN. سلوك System.GenericUriParserالكائن المحدد بواسطة تمرير تمثل مجموعة من قيم الموجودة في System.GenericUriParserOptionsالتعداد System.GenericUriParserالدالة الإنشائية. GenericUriParserOptions.IriParsing يشير إلى نوع يدعم محلل بقواعد التوزيع المحددة في RFC 3987 لمعرفات الموارد الدولية (IRI). ما إذا كان IRI هو استخدام هو الذي تم إملاؤه بتكوين قيم سابقا dهوcussed.

GenericUriParserOptions.Idn يشير إلى نوع يدعم محلل بالعالمية مجال اسم (IDN) تحليل (IDN) أسماء مضيف. ما إذا كان IDN هو استخدام هو الذي تم إملاؤه بتكوين قيم سابقا dهوcussed.

اعتبارات الأداء

إذا كنت تستخدم ملف ويب.config يحتوي UR هو لتهيئة الوقت إضافى، تطبيق الخاص بك هو المطلوبة لمعالجة UR هو إذا كانت معرفاتها نظام غير قياسي. في هذه حالة، قم بتهيئة الأجزاء المتأثرة من تطبيق الخاص بك عند الحاجة محددات، لا عند يبدأ.

ملاحظات للمتصلين

نظراً لقلق الأمان، تطبيقك يجب توخي الحذر عند قبول Uriمثيلات من المصادر غير الموثوق بها و مع dontEscapeتعيين إلى true.You يمكنك فحص من صحة سلسلة URI الخاص باستدعاء IsWellFormedOriginalStringالأسلوب.

يقوم المثال التالي بإنشاء مثيل من Uriلفئة ويستخدمه إلى إنشاء WebRequestالمثيل.


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

WebRequest wr = WebRequest.Create(siteUri);



يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98, Xbox 360, Zune

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0, 1.1, 1.0

NET Framework. Client Profile

مدعوم في: 4

XNA Framework

مدعوم في: 3.0, 2.0, 1.0
إظهار: