سؤال

واني اسعى الى تثبيت ضمني في بيئة مستوى ثقة متوسطة (المضيف: <لأ href = "HTTP: //www.crystaltech.com/ "يختلط =" نوفولو noreferrer "> Crystaltech ) وأنا الحصول على الخطأ التالي (انظر أدناه). وكنت قادرا على القيام الإعداد الإدارة ولكن عندما يحاول الذهاب إلى بلوق للاستخدام الفعلي، والازدهار.

وأنا أعلم أنني يمكن أن "ترقية" البيئة إلى مستوى ثقة كاملة ولكن أريد أن أفهم لماذا يحدث الخطأ وتداعيات ذلك الانتقال إلى الثقة الكاملة قبل أن أفعل ذلك.

لتوسيع على هذا السؤال. ما هي "مستويات الثقة"؟

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

واستثناء الأمن

     

والوصف:   حاول التطبيق إجراء   عملية غير مسموح من قبل الأمن   سياسات. منح هذا التطبيق   الإذن المطلوب الرجاء الاتصال   بمسؤول النظام أو تغيير   مستوى الثقة للتطبيق في   ملف الضبط.

     

وتفاصيل الاستثناء:   System.Security.SecurityException:   طلب للحصول على إذن من نوع   "System.Security.Permissions.SecurityPermission،   mscorlib، الإصدار = 2.0.0.0،   الثقافة = محايدة،   PublicKeyToken = b77a5c561934e089 "   فشلت.

     

وخطأ المصدر:

     

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

     

وتتبع المكدس:

     

[SecurityException: طلب ل   إذن من نوع   "System.Security.Permissions.SecurityPermission،   mscorlib، الإصدار = 2.0.0.0،   الثقافة = محايدة،   PublicKeyToken = b77a5c561934e089 "   فشلت.]
  System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal (سلسلة   virtualPath، IPrincipal المستخدم، سلسلة   فعل) +47
  Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl (سلسلة   رابط) +66
  Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage (HttpHandler   البند، HttpContext السياق) +143
  Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler (HttpContext   السياق، سلسلة requestType، سلسلة   رابط، سلسلة المسار) +340
  System.Web.HttpApplication.MapHttpHandler (HttpContext   السياق، سلسلة requestType،   مسار VirtualPath، سلسلة   pathTranslated، منطقية useAppConfig)   +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()   +128 System.Web.HttpApplication.ExecuteStep (IExecutionStep   الخطوة منطقية وcompletedSynchronously)   +161

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

المحلول

وأنا لا أعتقد أن هناك طريقة أخرى للالتفاف على خطأ آخر من الانتقال إلى الثقة الكاملة أو إزالة الدعوة إلى CheckUrlAccessForPrincipal () واعادة تجميع.

ولكن من ينظر للأمور، لقد تم تصحيح هذه المسألة بالذات بالفعل في ضمني SVN (مراجعة 3290). لقد أضاف أيضا مهمة بناء جديدة لضمني 2.0.1 الذي ينبغي أن يشمل الإصلاح. انا اعتقد ان هذا سيتم الافراج عنهم عندما يكون جاهزا.

نصائح أخرى

ومستويات الثقة هي في الواقع مؤشرات فقط لبعض الملفات security.config. يتم تحديد مستويات dafault الثقة في C: \ WINDOWS \ Microsoft.NET \ الإطار \ V2.0.50727 \ CONFIG \ الملف web.config، "المتوسطة" الثقة تشير إلى web_mediumtrust.config

وأما بالنسبة للاستثناء، أن نلقي نظرة على System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal () مع عاكس يكشف عن أن ينسب الأسلوب مع [SecurityPermission (SecurityAction.Demand، غير مقيد = صحيح)]، وهذا يعني أنه يتطلب إذن الأمنية غير المقيد، وهو ما لم يكن لديك يعمل تحت ثقة متوسطة.

والمزيد من حنطة إلى إضافة إلى طاحونة من csgero:

HTTP: // شبكة الاتصالات العالمية .kowitz.net / أرشيف / 2008/08/15 / الارتقاء إلى ضمني-2.0 fail.aspx

وهناك تعليق وي من فيل هاك، اعتقد انه مشغول مع غيرها من الاشياء في الوقت الراهن:)

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