التوافق مع سياسة أمان الوصول إلى التعليمات البرمجية و الإنتقال

جزء السياسة الخاص بأمان الوصول إلى التعليمات البرمجية (CAS) قد أصبح مُهملاً في .NET Framework الإصدار 4. نتيجة لذلك، قد تواجه تحذيرات أثناء التحويل البرمجي واستثناءات في وقت التشغيل إذا طلبت استدعاء أنواع و أعضاء السياسات المهملة بشكل صريح أو ضمني (من خلال أنواع و أعضاء أخرى). 

يمكنك تجنب التحذيرات و الأخطاء بواسطة واحد مما يلي:

  • الإنتقال إلى بدائل.NET Framework 4 لطلبات الاستدعاء المُهملة.

    -أو-

  • باستخدام عنصر التكوين <NetFx40_LegacySecurityPolicy> للاحتكام إلى سلوك سياسة CAS القديمة.

يشمل هذا الموضوع على الأقسام التالية.

  • الاستخدام الصريح

  • الاستخدام الضمني

  • الأخطاء والتحذيرات

  • الإنتقال: البديل لطلبات الاستدعاء المهملة

  • التوافق: باستخدام خيار سياسة CAS القديمة

الاستخدام الصريح

الأعضاء التي تتعامل مع سياسة الأمان مباشرةً أو تتطلب أن تقوم سياسة CAS باستخدام آلية تحديد الصلاحيات قد أصبحت مُهملة وستؤدي إلى إعطاء الأخطاء بشكل افتراضي.

أمثلة لهذه:

الاستخدام الضمني

تصدر عدة من التحميلات الزائدة التي تقوم بتحميل التجميعات أخطاء نتيجة استخدامها الضمني لسياسة CAS. تأخذ هذه التحميلات الزائدة متغير Evidence و هو الذي يُستخدم لتحليل سياسة CAS وتوفير مجموعة أذونات ممنوحة للتجميع.

وفيما يلي بعض الأمثلة. التحميلات الزائدة المهملة هي تلك التي تأخد Evidence كمتغير:

الأخطاء والتحذيرات

تنتج الأنواع و الأعضاء المهملة رسائل الخطأ التالية عند استخدامها. لاحظ أن النوع System.Security.Policy.Evidence نفسه غير مُهمل.

تحذير وقت التحويل البرمجي:

warning CS0618: '<API Name>' is obsolete: 'This method is obsolete and will be removed in a future release of the .NET Framework. Please use <suggested alternate API>. See <link> for more information.'

استثناء في وقت التشغيل:

NotSupportedException: This method uses CAS policy, which has been obsoleted by the .NET Framework. In order to enable CAS policy for compatibility reasons, please use the <NetFx40_LegacySecurityPolicy> configuration switch. Please see <link> for more information.

الإنتقال: البديل لطلبات الاستدعاء المهملة

تحديد مستوى الوثوق في تجميع ما

غالباً ما يتم استخدام سياسة CAS لتحديد مجموعة الأذونات الممنوحة إلى التجميع أو مجال التطبيق أو مستوى الثقة. تكشف .NET Framework 4 عن الخصائص المفيدة التالية التي لا تحتاج لتحليل سياسة الأمان:

آلية تحديد الصلاحيات لمجال التطبيق

يُستخدم الأسلوب AppDomain.SetAppDomainPolicy لتحديد صلاحيات التجميعات في مجال التطبيق. تكشف .NET Framework 4 الأعضاء التي لا يجب أن تستخدم PolicyLevel لهذا الغرض. لمزيد من المعلومات، راجع كيفية القيام بما يلي: تشغيل تعليمات برمجية موثوق بها جزئياً في آلية لتحديد الصلاحيات‬‬.

تحديد مجموعة أذونات آمنة‬ أو مناسبة للتعليمات البرمجية الموثوق بها جزئياً.

غالباً ما تحتاج الأجهزة المضيفة لتحديد الأذونات المناسبة لتحديد صلاحيات التعليمات البرمجية التي تستضيفها. قبل .NET Framework 4، كانت توفر سياسة CAS طريقة للقيام بذلك باستخدام الأسلوب SecurityManager.ResolvePolicy. كبديل توفر .NET Framework 4 الأسلوب SecurityManager.GetStandardSandbox،و الذي يقوم بإرجاع مجموعة أذونات آمنة، قياسية للأدلة التي تم توفيرها.

سيناريوهات غير متعلقة بتحديد الصلاحيات: التحميلات الزائدة لتحميل التجميع

قد يكون السبب في استخدام التحميل الزائد لتحميل تجميع هو استخدام متغيرات غير متوفرة بخلاف ذلك، بدلاُ من آلية تحديد الصلاحية للتجميع. مع بدء .NET Framework 4، التحميلات الزائدة لتحميل التجميع التي لا تتطلب كائن System.Security.Policy.Evidence كمتغير، على سبيل المثال، AppDomain.ExecuteAssembly(String, array<String[], array<Byte[], AssemblyHashAlgorithm) تقوم بتمكين هذا السيناريو.

إذا كنت تريد استخدام آلية تحديد الصلاحيات للتجميع، استخدم التحميل الزائد AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, array<StrongName[]).

التوافق: باستخدام خيار سياسة CAS القديمة

يتيح لك عنصر التكوين <NetFx40_LegacySecurityPolicy> تحديد ما إذا كانت عملية أو مكتبة ما تستخدم سياسة CAS القديمة. عند تمكين هذا العنصر، ستعمل السياسة و التحميلات الزائدة للدليل كما في الإصدارات السابقة من إطار العمل.

ملاحظةملاحظة

يتم تحديد سلوك سياسة CAS على أساس إصدار بيئة وقت تشغيل، لذا تعديل سياسة CAS لبيئة وقت تشغيل واحدة لن يؤثر على سياسة CAS لإصدار آخر.

<configuration>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true"/>
   </runtime>
</configuration>

راجع أيضًا:

المهام

كيفية القيام بما يلي: تشغيل تعليمات برمجية موثوق بها جزئياً في آلية لتحديد الصلاحيات‬‬