كيف تقمع مكالمة مباشرة إلى طريقة مُدارة؟
-
21-09-2019 - |
سؤال
أريد أن أعرف ما إذا كان هذا ممكنًا بطبيعته:
فكر في سيناريو السحابة. أسمح للمستخدمين بتحميل رمز .NET الخاص بهم على الخادم الخاص بي. ومع ذلك ، لإدارة الأشياء على الخادم الخاص بي ، لا يمكنني السماح للمستخدمين بكتابة التعليمات البرمجية التي تقوم بإجراء مكالمات مباشرة على أساليب مثل httpwebrequest.create ().
إذا كان المستخدم قد كتب مثل هذا الرمز ، فسيعني أنه يحاول الاتصال بخدمة ويب أخرى (على سبيل المثال). هدفي هو تقديم هذه الخدمات عبر خادم آخر ، ولكن لا يزال لديك عمل الخادم الرئيسي على الطلبات الواردة الأخرى.
أريد منع المكالمات إلى httpwebrequest.create (). بدلاً من ذلك ، سأقدم بعض الواجهة للمستخدم لإجراء مثل هذه المكالمات. ما نوع الحل الذي يمكنني التفكير فيه في هذه المشكلة؟
ملاحظة: أنا أكثر من .NET 2.0 الموجهة. يرجى أن تكون محددًا إذا أجبت على الصفقات مع نسخة أعلى
المحلول
إلقاء نظرة على أمان الوصول إلى الكود (http://msdn.microsoft.com/en-us/library/930b76w0(vs.71).aspx أو http://www.codeproject.com/kb/security/ub_cas_net.aspx)
يمكنك إنشاء AppDomain مقيد جديد حيث يتم تنفيذ رمز عملائك.
تعديل: إذا كنت ترغب في توفير نوع من واجهة برمجة التطبيقات التي تنفذ الأساليب التي تحتاج إلى httpwebrequest ، فأنا أقترح إنشاء خدمة (التي لها جميع الحقوق) و API تستدعي تلك الخدمة. في تلك الخدمة ، يمكنك تنفيذ أي قيود تريدها.