معلومات: نظرة عامة حول معالجات HTTP والوحدات النمطية HTTP ASP.NET

ملخص

توفر هذه المقالة مقدمة إلى الوحدات النمطية ASP.NET HTTP ومعالجات HTTP.

لنظرات عامة حول ASP.NET إضافية، راجع مقالة "قاعدة معارف Microsoft" التالية:
معلومات 305140 : خارطة الطريق ASP.NET

مزيد من المعلومات

معالجات HTTP والوحدات النمطية HTTP جزءا لا يتجزأ من بنية ASP.NET. أثناء معالجة طلب، تتم معالجتها بواسطة الوحدات النمطية ل HTTP متعددة (على سبيل المثال، الوحدة النمطية للمصادقة ووحدة جلسة) كل طلب وثم تتم معالجتها بواسطة معالج HTTP واحد. بعد أن قام المعالج بمعالجة الطلب، يتدفق الطلب مرة أخرى من خلال الوحدات النمطية HTTP.

يتم تقسيم هذه المادة إلى المقاطع التالية:

الوحدات النمطية HTTP

تسمى وحدات قبل وبعد تنفيذ المعالج. الوحدات النمطية لتمكين المطورين من اعتراض أو المشاركة في تعديل كل طلب فردي. الوحدات النمطية بتطبيق واجهة إيهتبمودولي ، الموجود في مساحة الاسم System.Web .

الأحداث المتوفرة

فئة هتبابليكيشن عددا من الأحداث التي يمكنك مزامنة الوحدات النمطية. الأحداث التالية متوفرة للوحدات النمطية ليتزامن مع كل طلب. يتم سرد هذه الأحداث بالترتيب التسلسلي:
  • BeginRequest: بدأ الطلب. إذا كنت بحاجة للقيام بشيء في بداية الطلب (على سبيل المثال، عرض إعلان لافتات في أعلى كل صفحة)، وتزامن هذا الحدث.
  • أوثينتيكاتيريقويست: إذا كنت تريد توصيل نظام المصادقة المخصصة الخاصة بك (على سبيل المثال، البحث عن مستخدم مقابل قاعدة بيانات للتحقق من صحة كلمة المرور)، إنشاء وحدة نمطية لمزامنة هذا الحدث ويصادق على المستخدم كيفية.
  • أوثوريزيريقويست: يتم استخدام هذا الحدث لتنفيذ آليات التخويل (على سبيل المثال، لتخزين الخاص بك قوائم التحكم بالوصول (ACLs) في قاعدة بيانات بدلاً من نظام الملفات) داخليا. على الرغم من أنه يمكنك تجاوز هذا الحدث، لا توجد العديد من الأسباب الوجيهة للقيام بذلك.
  • ريسولفيريقويستكاكهي: يحدد هذا الحدث إذا كان يمكن تقديم صفحة من المخزن المؤقت للإخراج. إذا أردت كتابة وحدة ذاكرة التخزين المؤقت الخاصة بك (على سبيل المثال، بناء على أساس ملف ذاكرة التخزين المؤقتة بدلاً من ذاكرة التخزين مؤقت)، مزامنة هذا الحدث لتحديد إذا ما كان لخدمة الصفحة من ذاكرة التخزين المؤقت.
  • أكقويريريقويستستاتي: حالة جلسة العمل التي يتم استردادها من مخزن الولاية. إذا كنت ترغب في إنشاء الوحدة النمطية الخاصة بك لإدارة الدولة، مزامنة هذا الحدث للاستيلاء على حالة جلسة العمل من المخزن الدولة.
  • بريريقويسثاندليريكسيكوتي: يحدث هذا الحدث قبل تنفيذ معالج HTTP.
  • بوستريقوسثاندليريكسيكوتي: يحدث هذا الحدث بعد تنفيذ معالج HTTP.
  • ريلياسيريقويستستاتي: يتم تخزين حالة جلسة العمل مرة أخرى في مخزن الولاية. إذا كنت تقوم بإنشاء وحدة نمطية لحالة جلسة عمل مخصص، يجب تخزين الولاية مرة أخرى في مخزن الدولة.
  • أوبداتيريقويستكاكهي: هذا الحدث كتابة الإخراج مرة أخرى إلى المخزن المؤقت للإخراج. إذا كنت تقوم بإنشاء وحدة ذاكرة التخزين المؤقت مخصصة، يمكنك كتابة الإخراج مرة أخرى إلى ذاكرة التخزين المؤقت.
  • EndRequest: تم إكمال الطلب. قد تحتاج إلى إنشاء وحدة نمطية تصحيح أخطاء التي تقوم بجمع معلومات من خلال الطلب وثم كتابة المعلومات إلى الصفحة.
الأحداث التالية متوفرة للوحدات النمطية ليتزامن مع نقل كل طلب. يتم ترتيب هذه الأحداث غير محدد.
  • بريسيندريقويسثيديرس: يحدث هذا الحدث قبل إرسال الرؤوس. إذا كنت تريد إضافة رؤوس إضافية، يمكنك مزامنة هذا الحدث من وحدة مخصصة.
  • بريسيندريقويستكونتنت: يحدث هذا الحدث عند استدعاء الأسلوب Response.Flush . إذا كنت تريد إضافة محتوى إضافي، يمكنك مزامنة هذا الحدث من وحدة مخصصة.
  • خطأ: يحدث هذا الحدث عند حدوث استثناء غير معالج. إذا كنت تريد كتابة وحدة معالج خطأ مخصصة، يمكنك مزامنة هذا الحدث.

تكوين الوحدات النمطية HTTP

معالج مقطع التكوين < httpModules > مسؤولة عن تكوين HTTP النمطية داخل أحد تطبيقات. يمكن أن يتم تعريف في الكمبيوتر أو موقع أو على مستوى التطبيق. استخدم بناء الجملة التالي لمعالج مقطع < httpModules >:
<httpModules>   <add type="[COM+ Class], [Assembly]" name="[ModuleName]" />
<remove type="[COM+ Class], [Assembly]" name="[ModuleName]" />
<clear />
</httpModules>

إنشاء الوحدات النمطية HTTP

لإنشاء إحدى وحدات HTTP نمطية، يجب تطبيق واجهة إيهتبمودولي . واجهة إيهتبمودولي على أسلوبين بالتواقيع التالية:
void Init(HttpApplication);void Dispose();

للحصول على معلومات إضافية حول إنشاء وحدات نمطية HTTP، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف ل Microsoft":
308000 كيفية: إنشاء وحدة نمطية HTTP ASP.NET باستخدام Visual Basic.NET
307996 كيفية: إنشاء وحدة نمطية HTTP ASP.NET باستخدام Visual C#.NET

معالجات HTTP

يتم استخدام معالجات لمعالجة الطلبات الفردية نقطة النهاية. تمكين معالجات إطار عمل ASP.NET لمعالجة HTTP Url منفردة أو مجموعات من ملحقات URL داخل أحد تطبيقات. على عكس الوحدات النمطية، يتم استخدام معالج واحد فقط لمعالجة طلب. تطبيق كافة معالجات واجهة IHttpHandler ، الموجود في مساحة الاسم System.Web . معالجات تشبه إلى حد ما إلى ملحقات إنترنت برمجة تطبيقات خادم واجهة (ISAPI).

تكوين معالجات HTTP

معالج مقطع التكوين < httpHandlers > المسؤول عن تعيين URLs الواردة إلى فئة IHttpHandler أو إيهتفاندليرفاكتوري . يمكن أن يتم تعريف في الكمبيوتر أو موقع أو على مستوى التطبيق. الدلائل الفرعية ترث هذه الإعدادات.

يستخدم مسؤولو التوجيه العلامة < إضافة > لتكوين قسم < httpHandlers >. يتم تفسير توجيهات < إضافة > ومعالجتها في ترتيب تسلسلي تنازلي. استخدم بناء الجملة التالي لمعالج مقطع < httphandler > الخاص:
<httpHandlers>   <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />
<remove verb="[verb list]" path="[path/wildcard]" />
<clear />
</httpHandlers>

إنشاء معالجات HTTP

لإنشاء معالج HTTP، يجب تطبيق واجهة IHttpHandler . واجهة IHttpHandler يحتوي على أسلوب واحد وخاصيه واحدة باستخدام التواقيع التالية:
void ProcessRequest(HttpContext);bool IsReusable {get;}

ملاحظة: إذا كان مطلوباً حالة جلسة العمل في معالج HTTP الخاص بك، تحتاج أيضا إلى تطبيق واجهة إيريقويريسيسيونستاتي .
للحصول على معلومات إضافية حول إنشاء معالجات HTTP، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف ل Microsoft":
308001 كيفية: إنشاء معالج HTTP ASP.NET باستخدام Visual C#.NET
لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة معارف Microsoft":
307997 كيفية: إنشاء معالج HTTP ASP.NET باستخدام Visual Basic.NET
خصائص

رقم الموضوع: 307985 - آخر مراجعة: 18‏/01‏/2017 - المراجعة: 1

تعليقات