Caspol ، FullTrust وتشغيل عنصر تحكم ActiveX في IE مع FullTrust على أساس عنوان URL

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

سؤال

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

تبدو إعدادات Caspol هكذا:

مجموعات الكود:

1.  All code: FullTrust
   1.1.  Zone - MyComputer: FullTrust
      1.1.1.  StrongName - (omitted) : FullTrust
      1.1.2.  StrongName - 00000000000000000400000000000000: FullTrust
   1.2.  Zone - Intranet: FullTrust
      1.2.1.  All code: Same site Web
      1.2.2.  All code: Same directory FileIO - 'Read, PathDiscovery'
   1.3.  Zone - Internet: Internet
      1.3.1.  All code: Same site Web
   1.4.  Zone - Untrusted: Nothing
   1.5.  Zone - Trusted: Internet
      1.5.1.  All code: Same site Web
   1.6.  Url - http://MYSERVERNAME/APPLICATIONNAME/*: FullTrust
Success

التطبيق الذي أحاول الوصول إليه هو المجموعة 1.6. أفعل شيئا خطأ هنا؟

يحررتجدر الإشارة إلى أن خطأ IedeBug على جهاز يحاول الوصول إلى عنصر التحكم من إنترانت يعرض استثناءً طويلًا. أبرزها:

System.Net.WebPermission
The first permission that failed was:
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">
هل كانت مفيدة؟

المحلول

منذ فترة طويلة قرأت في مكان ما لـ .NET USERCONTROLS ، أدلة URL لا تعمل. أدلة الموقع والمنطقة فقط.

caspol -machine -quiet -addgroup Trusted_Zone -site mysite.com FullTrust -name mysite -description "Code group granting trust to code from mysite.com"

يمكنك القيام بذلك لكل منطقة.

عند استخدام IE8 ، تأكد من إضافة mysite.com إلى قائمة المواقع الموثوق بها 3. لست متأكدًا مما إذا كان الوضع المحمي يجب إيقافه.

عندما تكون على نظام 64 بت ، هناك نوعان من caspol ، مع أذونات منفصلة:

  • C: Windows Microsoft.net Framework v2.0.50727 caspol.exe
  • C: Windows Microsoft.net Framework64 v2.0.50727 caspol.exe

أنا أقدر الكثير من الوقت في تحديد أذونات على كاسبول 32 بت ، ثم ضرب رأسي على الحائط لأنه لن ينجح. تبين أنني استخدمت 64 بت IE8 لأن ذلك صنع iedebug.log. من الأفضل تعيين الأذونات على كلا الإصدارين.

نصائح أخرى

كما اتضح ، لم تكن هذه مشكلة ثقة على الإطلاق. لم يكن DLL مطلوبًا للتطبيق تشغيله في دليل BIN للتطبيق. وبالتالي ، كان التطبيق يحاول سحب DLL المطلوب من GAC ، وهو ما لم يكن صحيحًا. نشر مع DLL المطلوبة إصلاح المشكلة.

كملاحظة جانبية - هذه آلية تسليم قديمة للغاية للبرامج ونأمل ألا يتم استخدامها بعد الآن. تصحيح هذه الأنواع من الأخطاء أصعب بكثير مما ينبغي. التوصية باختيار آلية توصيل أفضل من الضوابط المضمنة.

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