سؤال

لدينا خدمة تشفير كشفناها عبر net.tcp.في معظم الأحيان، يتم استخدام الخدمة لتشفير/فك تشفير السلاسل.ومع ذلك، بين الحين والآخر، نحتاج إلى تشفير المستندات الكبيرة (pdf، jpg، bmp، إلخ).

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

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

المحلول

يصف MSDN كيفية تمكين الدفق عبر WCF بشكل جيد إلى حد ما.

لاحظ أنه إذا كان الارتباط بين العميل والخادم بحاجة إلى التشفير، فستحتاج إلى إنشاء آلية التشفير الخاصة بك.الافتراضي net.tcp يتطلب التشفير شهادات X.509، والتي لن تعمل مع التدفقات لأن هذا النوع من التشفير يحتاج إلى العمل على رسالة بأكملها دفعة واحدة بدلاً من تدفق البايتات.

وهذا بدوره يعني أنك لن تتمكن من مصادقة العميل باستخدام آليات أمان WCF الافتراضية لأن المصادقة تتطلب التشفير.الحل الوحيد الذي أعرفه لهذا هو تنفيذ ملحقات السلوك المخصصة الخاصة بك على العميل والخادم للتعامل مع المصادقة.

مرجع جيد حقًا حول كيفية إضافة ملحقات السلوك المخصصة هو هنا:يوثق هذا كيفية توفير التكوين المخصص أيضًا (شيء لا أعتقد أنه تمت مناقشته في أي مكان في مستندات MSDN في هذا الوقت).

نصائح أخرى

أحد الأنماط التي يمكنك اتباعها هو أن يكون لديك خدمة غير متزامنة تعمل على الملفات الموجودة على موقع نظام ملفات مشترك:

  1. ضع الملف المراد تشفيره في موقع مشترك
  2. اتصل بالخدمة واطلب منها تشفير الملف، مع تمرير كل من موقع الملف واسمه وعناوين خدمة رد الاتصال على العميل
  3. ستقوم الخدمة بتشفير الملف ووضع النسخة المشفرة في موقع مشترك (نفس المكان الذي تم وضع النسخة غير المشفرة فيه أو مختلف، لا يهم)
  4. ستتصل الخدمة مرة أخرى بالعميل، مع إعطاء اسم الملف المشفر وموقعه
  5. يمكن للعميل استرداد الملف المشفر
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top