كيفية القيام بما يلي: استخدام التوقيع تجميع حيوي اسم القوية لإعطاء إلى بالكامل
يمكن منح تجميع حيوي اسم قوي استخدام التوقيع جزئي أو التوقيع كاملة. لالتوقيع الجزئي، يجب تحديد مفتاح عام في AssemblyNameالتي تم تمريرها إلى DefineDynamicAssemblyأسلوب. اللغة الشائعة وقت التشغيل يخصص المساحة الموجودة داخل الملف المحمول الملف التنفيذي (PE) blob توقيع اسم المميز، ولكن لا يوقع تجميع بالفعل. يمكن توقيعها تجميع الناتج بشكل كامل في خطوة ينشر-processing استخدام الأدوات المتوفرة في عدة تطوير برامج Windows (SDK).
لتسجيل عمومي/خاص كامل المفتاح يجب توفير ينشئ ازدواجًا. يتم عادة تخزين هذه الوحدات في ملف أو قرص أو في حاوية مفاتيح التي تملكها بواسطة تشفير واجهة برمجة تطبيقات التشفير الخدمة موفر (CSP). مفاتيح الأمان المنخفض غالباً ما تم إنشاؤها بواسطة CSP يستند إلى البرامج وتصدير إلى ملف بحيث يمكن أن يتم إيداعه في أنظمة إدارة تعليمات برمجية المصدر أثناء تطوير مشروع. يتم إنشاء مفاتيح الأمان العالي غالباً بالأجهزة التي عادة ما يساعد على منع يصدّر المفاتيح لأسباب أمنية. Such المفتاح pairs can فقط be accessed indirectly through a المفتاح حاوية. The اسم قوي المفتاح ينشئ ازدواجًا هو specified using the System.Reflection.StrongNameKeyPair فئة.
The following مثال demonstrates using كامل التوقيع إلى give a ديناميكي تجميع a اسم قوي.
مثال
Dim fs As New FileStream("SomeKeyPair.snk", FileMode.Open)
Dim kp As New StrongNameKeyPair(fs)
fs.Close()
Dim an As New AssemblyName()
an.KeyPair = kp
Dim myAppDomain As AppDomain = Thread.GetDomain()
Dim ab As AssemblyBuilder = myAppDomain.DefineDynamicAssembly(an, AssemblyBuilderAccess.RunAndSave)
FileStream fs = new FileStream("SomeKeyPair.snk", FileMode.Open);
StrongNameKeyPair kp = new StrongNameKeyPair(fs);
fs.Close();
AssemblyName an = new AssemblyName();
an.KeyPair = kp;
AppDomain appDomain = Thread.GetDomain();
AssemblyBuilder ab = appDomain.DefineDynamicAssembly(an, AssemblyBuilderAccess.RunAndSave);
راجع أيضًا:
المبادئ
إنشاء ثم استخدام التجميعات المسماة قوية