WCF 4.0 التناظرية إلى WCF بقية كاتب كيت RequestInterceptor?

StackOverflow https://stackoverflow.com/questions/6023121

  •  14-11-2019
  •  | 
  •  

سؤال

لا WCF 4.0 التناظرية فئة/وحدة/ما WCF بقية كاتب كيت RequestInterceptor?

هل كانت مفيدة؟

المحلول

لا يوجد أي شيء يقوم بالخرائط 1-1 لذلك، ولكن يمكنك استخدام IDISPatchMessageSpectorpork من برنامج WCF Core لتنفيذ معظم السيناريوهات التي يقوم بها TreedInspector.المشاركة في http://blogs.msdn.com/b/carlosfigueira/archive 21/04/19/wcf-extimability-message-insveurs.aspx لديه بعض المعلومات التفصيلية حول مفتشي الرسائل.

نصائح أخرى

لقد عدت مع تحديث.

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

على أي حال، يكفي من الآراء ... إلى الحل. الحل صحيح تحت أعيننا على Stackoverflow في هذا الرابط ولكن لم يتم وصفه جيدا في سياقنا ... لذلك سأقدم الائتمان إلى "User634119" لعينة التعليمات البرمجية الموجودة هنا: رؤوس في تشغيل العملية

أولا، نحتاج إلى إضافة خدمة ServiceBehavior إلى ملف Web.config لدينا: giveacodicetagpre.

التالي قم بإجراء فئة (تسمى Basicauthorization على النحو المشار إليه في كتلة ServiceBehaviors أعلاه): giveacodicetagpre.

التالي جعل فئة المصادقة: giveacodicetagpre.

في طريقة المصادقة، استخدم HTTPRECTMessageProperty لسحب تفاصيل رأس الطلب وإجراء نفس الخطوات الثلاث الموضحة في ردي الأول.

إدواردو طلبت:@carlosfigueira:هل يمكنني استخدامها لتنفيذ مصادقة الفرعي?

أنا أعمل على نفس المسألة على الأقل حل واحد (موضح أدناه) لك المرتقبة إذن رأس على أساس واحد (التي أؤمن هو واحد كنت تفكر في "اعتراض").

أبسط طريقة آمنة WCF 4 بقية WebHttp نموذج البرمجة المستندة إلى نقطة النهاية هو هذا:

  1. المسألة سر مشترك مفتاح و مفتاح API لكل عميل لاستخدام بيانات اعتماد.مفتاح API هو حقا نفس اسم المستخدم.
  2. تشغيل جميع endspoints عبر SSL لضمان أن يكون لديك دائما قناة/رسالة/أمن البيانات
  3. تتطلب العملاء إلى استخدام السرية المشتركة لتوليد HMAC-SHA1 (أو ما يعادله) تجزئة توقيع سلسلة تضم الزمني و مفتاح API.
  4. تتطلب العميل لتمرير كل 3 من هذه سلاسل الاستعلام المعلمات في كل طلب:
    • التوقيع
    • الطابع الزمني
    • مفتاح API
    • على سبيل المثال: https://127.0.0.1/RestEndpoint?Sig={sigString}&ApiKey={apiKey}&الزمني={الزمني}&جميع المعلمات الأخرى هنا...
  5. على الجانب وتنفيذ أسلوب مصادقة أن يأخذ كل 3 سلاسل ثم:
    • بالبحث عن مفتاح API و يعود العميل السرية المشتركة التي لك في ديسيبل أو في مكان آخر.
    • قارن الزمني ضد التاريخ والوقت.الآن للتأكد من أن الطلب ليس أكثر من 15 دقيقة القديمة لدرء تكرار الهجمات.
    • باستخدام هذه 3 سلاسل إعادة توقيع سلسلة ومقارنة لك واحد مرت من قبل العميل.
    • إذا كانت مباراة, الطالب هو أصيل.

الآن أفضل طريقة للقيام بذلك هي باستخدام HTTP طلب ترخيص رأس لتخزين تلك 3 سلاسل و عالمي اعتراضية العش عملية مشاهدة جميع الطلبات.هذا من شأنه أن يمنع إمكانية مكشوف نقطة النهاية دون مصادقة كتلة (حسنا, على الأقل أقل احتمالا ربما).

مشكلة مع استخدام سلسلة الاستعلام إلى تحمل كل هذه المعلومات هو سلسلة الاستعلام لديه 2k طول ماكس (الذي يختلف من قبل العميل/المتصفح) و سلسلة الاستعلام يحصل حقا من الصعب قراءة عند التصحيح...ولكن فقط تعتاد على ذلك.

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

وسوف أبذل قصارى جهدي لنشر كتل التعليمات البرمجية التي تنفذ كل سلسلة الاستعلام و مصادقة رأس المنهجيات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top