غير عامة مما تسبب في خطأ أذونات في انعكاس على ثقة متوسطة

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

سؤال

ويجب أن أقول أنه حتى الآن، لقد كنت محظوظا ربما مجرد الرتق في ذلك جئت أبدا في المشاكل المرتبطة موقع على شبكة الإنترنت تعمل في ثقة متوسطة. لقد وضعت فقط من أي وقت مضى تطبيقات الشبكة الداخلية أو حدث أن يكون استخدام شركة استضافة الذي يعمل في الثقة الكاملة. لكن المضيف لقد طلب مني لاستخدامها في مشروع حديث يعمل على ثقة متوسطة لذلك أنا أحاول الحصول على بلدي التطبيق تشغيل هذا. سؤالين - أطور على نظام التشغيل Windows XP. يمكن IIS على وجود تهيئتها للثقة متوسطة (أسهل لتصحيح) و / أو هو وضع الملف web.config؟ هناك ثروة من المعلومات حول هذا الموضوع ومنحنى التعلم حاد.

وثانيا، بعد الكثير من تافه وإزالة الرمز، وأعتقد أن هذا الخط هو الذي يسبب خطأ أذونات:

لكل FieldInfo وFieldInfo في Type.GetFields (BindingFlags.Instance أو BindingFlags.NonPublic أو BindingFlags.Public)

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

.

وابتهاج، روب.

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

المحلول

عذرا، التأمل مع غير عامة ما يعادل الثقة الكاملة.

إذا على نحو ما لم يكن لديك ثقة كاملة ولكن كان انعكاس غير عامة، ويمكنني أن الاستفادة من ذلك في تغيير بلدي مستوى الثقة التعليمات البرمجية (سلاسل للكتابة، الخ).

نصائح أخرى

نعم، وهو موقع على XP يمكن تكوين لتشغيل في ثقة متوسطة:

في المقطع إضافة ما يلي:

<!-- Case is important: it's Medium, not medium -->
<trust level="Medium"/>

وكنت هناك.

ما قد تجد جيدا هو أن معظم المضيفين تشغيل مواقعهم في مرتفعة قليلا "متوسطة" وضع الثقة، مع بعض الحقوق الإضافية خارج الافتراضي - التقنيين بهم يجب أن يكون قادرا على ان اقول لكم ما هي الاختلافات لديهم إن وجدت

إذا كنت نلقي نظرة في:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web_mediumtrust.config

وسترى الإعدادات الافتراضية التي يتم تطبيقها.

والتأمل هو واحد من الأشياء الرئيسية التي يقتصر في ثقة متوسطة - من ملاحظات على في الصفحة GetFields :

<اقتباس فقرة>   

وإذا كان الحقل المطلوب هو غير العام والمتصل ليس لديها ReflectionPermission لتعكس الأشياء غير العامة خارج البرلمان الحالي، وهذا الأسلوب بإرجاع مرجع فارغة (لا شيء في Visual Basic).

ولما كان هذا لديه القدرة على العودة لاغية ربما يجب عليك أن التحقق من وجود لاغية قبل أن تبدأ بالتكرار من خلال ذلك، أو التحقق من أن FieldInfo ليست لاغية / لا شيء قبل استخدامه.

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

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