سؤال

أريد أن اختبار سلوك قطعة معينة من .رمز الشبكة في ثقة جزئية البيئات.ما هي أسرع طريقة لوضع هذا ؟ لا تتردد أن نفترض أن (وغيرها من القراء) هي مجموع CAS ودي.

@نيك:شكرا على الرد.للأسف, الأداة في السؤال صراحة على التعليمات البرمجية غير المدارة.أنا لم أقل "نجح" في سؤالي أن تفترض أن الناس سوف نستنتج من ".نت" الوسم.

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

المحلول

هذا سؤال ممتاز ، وخاصة من TDD وجهة نظر و التحقق من صحة التعليمات البرمجية في إطار مختلف الثقة السيناريوهات.

أعتقد أن الطريقة التي كنت نهج هذا سيكون شيئا على غرار -

  • إنشاء AppDomain في TDD التعليمات البرمجية باستخدام AppDomain.CreateDomain() الزائد الذي يسمح لك بالمرور في PermissionSet.على PermissionSet سيكون شيدت لتتناسب مع مختلف الثقة سيناريوهات كنت ترغب في اختبار ضد.

  • تحميل التجميع التي تحتوي على المنطق تحت الاختبار في التطبيق المجال

  • إنشاء مثيلات من أنواع/أساليب الدعوة وغيرها في مجال التطبيق ، فخ الأمن استثناءات

شيء مثل هذا.ليس لدي الوقت لضرب تصل دليل على مفهوم حتى الآن.

نصائح أخرى

وظيفة كنت تبحث عن المضمنة في visual studio :

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

استخدام مايكروسوفت أداة التحقق من التطبيقات.

AppVerifier يساعد على تحديد ما يلي:

  • عندما يكون التطبيق باستخدام واجهات برمجة التطبيقات بشكل صحيح:(غير آمنة TerminateThread واجهات برمجة التطبيقات., الاستخدام الصحيح من الموضوع المحلية التخزين (TLS) واجهات برمجة التطبيقات., o الاستخدام الصحيح الفضاء الافتراضي التلاعب (على سبيل المثال ، وزر الفأرة, MapViewOfFile).
  • ما إذا كان التطبيق هو إخفاء انتهاكات الوصول باستخدام معالجة الاستثناء.
  • ما إذا كان التطبيق هو محاولة استخدام غير صالح مقابض.
  • إذا كان هناك ذاكرة فساد أو قضايا في كومة.
  • ما إذا كان يتم تشغيل التطبيق من الذاكرة في ظل انخفاض الموارد.
  • ما إذا كان الاستخدام الصحيح المقاطع الحرجة التي تحدث.
  • ما إذا كان التطبيق قيد التشغيل في البيئة الإدارية سوف تعمل بشكل جيد في بيئة أقل امتياز.
  • ما إذا كانت هناك إمكانية مشاكل عند تشغيل التطبيق كمستخدم محدود.
  • إذا كان هناك غير مهيأ المتغيرات في المستقبل المكالمات وظيفة في موضوع السياق.

يجب أن ننظر إلى .NET Framework أداة التكوين.انها في .صافي SDK ، يمكنك العثور على إرشادات حول تشغيل هنا...http://msdn.microsoft.com/en-us/library/2bc0cxhc.aspx

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

يمكنك تحديد المخصصة الخاصة بك إذن مجموعات أيضا ، ولكن دعونا يبقيه بسيط الآن.

اختيار ما إذا كنت تريد الجديد الخاص بك رمز المجموعة موجودة في آلة واسعة النطاق ، أو فقط من أجل حساب المستخدم الخاص بك و الحفر في الجهاز أو المستخدم مستوى السياسات وفقا لذلك.سترى رمز المجموعة تسمى _All _ Code_ .خلق الطفل رمز المجموعة داخل أحد ، بالنقر بزر الماوس الأيمن واختيار جديد...

تعطيه اسما ، ويقول PartialTrustGroup ثم انقر فوق القادم .

لديك لتحديد شرط عضوية هذه المجموعة ، وهناك أنواع مختلفة.أود أن إنشاء مجلد معين يسمى PartialTrust على الجهاز الخاص بي ، ثم إنشاء عنوان URL عضوية شرط أن المباريات.حتى URL يبدو مثل هذا...file://c:/users/مارتن/الوثائق/partialtrust/*

* هو بدل للقبض على أي الجمعية تحت هذا المسار.انقر القادم .

الآن يمكنك اختيار إذن مجموعة جديدة رمز المجموعة.الآن اختيار الإنترنت .هو الى حد بعيد مجموعة محدودة ، على غرار برنامج Java رمل.انقر القادم و النهاية .

الآن انقر بزر الماوس الأيمن على رمز المجموعة وحدد خصائص.في التبويب عام ، وضمان أعلى خانة الاختيار ثم انقر فوق موافق.

الآن, أي .صافي التجميعات التي يتم تحميلها من موقع تحت عنوان URL الذي حددته سوف يكون الإنترنت إذن مجموعة يطبق عليهم.تتوقع الحصول على بعض SecurityExceptions إذا لم تكن كتابة التعليمات البرمجية الخاصة بك إلى مراقبة بعناية تخفيض إذن مجموعة.

آسف هذا هو وصف طويل.انها حقا هو الكثير أكثر بساطة مما يبدو.

أنا مجرد نشر مقال بعنوان ثقة جزئية الاختبار مع xUnit.net على بلدي بلوق.فإنه تفاصيل xUnit.أساس صافي الإطار التي نستخدمها في إطار كيان الفريق إلى ممارسة القانون ثقة متوسطة.

هنا هو مثال على استخدامه.

public class SomeTests : MarshalByRefObject
{
    [PartialTrustFact]
    public void Partial_trust_test1()
    {
        // Runs in medium trust
    }
}

// Or...

[PartialTrustFixture]
public class MoreTests : MarshalByRefObject
{
    [Fact]
    public void Another_partial_trust_test()
    {
        // Runs in medium trust
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top