أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية إنشاء مفاتيح باستخدام Visual Basic .NET لاستخدامه في مصادقة النماذج

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

313091
للحصول على إصدار Microsoft Visual C# .NET من هذه المقالة، راجع 312906.

تشير هذه المقالة إلى مساحات أسماء Microsoft .NET Framework فئة مكتبة التالية:
  • System.Text
  • System.Security.Cryptography

في هذه المهمة

الموجز
توضح هذه المقالة كيفية إنشاء مفاتيح لاستخدامها في التحقق من صحة بيانات ملف تعريف الارتباط مصادقة النماذج فك التشفير والتشفير. يمكنك استخدام مفاتيح التي تقوم بإنشائها في هذه المقالة للحصول على validationKey والسمات decryptionKey المقطع <machinekey>في<system.web> عنصر في Machine.config و Web.config في الملفات.

متطلبات

توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة و حزم الخدمات التي تحتاجها:
  • Microsoft Windows 2000 أو Microsoft Windows XP
  • إطار عمل Microsoft .NET
  • خدمات معلومات الإنترنت لـ Microsoft "(IIS)

إنشاء المشروع

  1. بدء تشغيل Microsoft Visual Studio .NET.
  2. من القائمة ملف ، أشر إلى جديد ثم انقر فوق المشروع.
  3. في ناحية أنواع Project انقر فوق مشاريع Visual Basic.
  4. في ناحية قوالب انقر فوق تطبيق وحدة التحكم.
  5. في مربع النص اسم اكتب HashConfigVb ومن ثم انقر فوق موافق.

كتابة التعليمات البرمجية تجزئة كلمة مرور

يقرأ التعليمات البرمجية في هذا المقطع الوسيطتين التي تم تمريرها من سطر الأوامر:
  • الوسيطة الأولى هو عدد وحدات البايت المستخدمة في إنشاء سمة decryptionKey.
  • الوسيطة الثانية هي عدد وحدات البايت المستخدمة في إنشاء سمة validationKey.
تستخدم التعليمة البرمجية منشئ أرقام عشوائية لإنشاء عدد عشوائي من وحدات البايت التي تستند إلى وسائط سطر الأوامر. بعد إنشاء بايت عشوائي المنسقة وحدات البايت إلى سلسلة سداسية عشرية مناسبة للاستخدام في ملفات .config.

ملاحظة هو سلسلة الست عشري الذي يتم إنشاؤه مرتين حجم القيمة التي يتم تمريرها في سطر الأوامر. على سبيل المثال، إذا حددت 24 بايت للحصول على مفتاح السلسلة الناتجة 48 بايت في طول بعد عملية التحويل. القيم الصالحة لـ decryptionKey هو 8 أو 24. يؤدي هذا إلى إنشاء مفتاح ذو 16 بايت تشفير البيانات القياسي (DES) أو 48 بايت المفتاح لـ ثلاثي Triple DES على التوالي. القيم الصالحة لـ validationKey هي 20 إلى 64. يؤدي هذا إلى إنشاء مفاتيح من 40 إلى 128 بايت في طول بعد عملية التحويل. يكون الإخراج من التعليمات البرمجية بالكامل <machinekey> العنصر الذي نسخ و لصق في Machine.config أو ملف Web.config.

  1. إضافة ملف فئة جديد يسمى KeyCreator إلى المشروع Visual Basic.
  2. Replace the existing code in the KeyCreator.vb file with the following code:
    Imports SystemImports System.TextImports System.Security.CryptographyNamespace Crypto  Public Class KeyCreator	    Public Shared Sub CreateMachineKey()      Dim commandLineArgs As String()      commandLineArgs = System.Environment.GetCommandLineArgs()      Dim decryptionKey As String      decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs(1)))      Dim validationKey As String      validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs(2)))      Console.WriteLine("<machineKey validationKey=""{0}"" decryptionKey=""{1}"" validation=""SHA1""/>", _      validationKey, decryptionKey)     End Sub     Public Shared Function CreateKey(numBytes As Integer) As String       Dim rng As RNGCryptoServiceProvider = New RNGCryptoServiceProvider()       Dim buff(numBytes -1) As Byte       rng.GetBytes(buff)				       Return BytesToHexString(buff)     End Function      Public Shared Function BytesToHexString(bytes As Byte()) As String       Dim hexString As StringBuilder = New StringBuilder(64)       Dim counter as Integer       For counter = 0 To bytes.Length - 1         hexString.Append(String.Format("{0:X2}", bytes(counter)))       Next       Return hexString.ToString()    End Function  End ClassEnd Namespace					
  3. قم بفتح الملف Module1.vb الذي يتم إنشاؤه بشكل افتراضي ثم قم بإضافة التعليمة البرمجية التالية في روتين فرعي الرئيسي:
        Dim MyKeyCreator As New Crypto.KeyCreator()    MyKeyCreator.CreateMachineKey()					
  4. إنشاء التطبيق.

إنشاء التجزئة

تشغيل التطبيق من موجه الأوامر ثم ثم تمرير في قيمتين عدد صحيح يتم حجم فك التشفير ومفاتيح التحقق من الصحة. إذا قمت بتسميته تطبيق وحدة التحكم HashConfigVb.exe اكتب بناء الجملة التالي في موجه الأوامر في سلة دليل التطبيق:
HashConfigVb.exe 24 64
يجب أن يقوم التطبيق بإرجاع إخراج مشابه الإخراج التالي:
<machineKey validationKey="08CE6B478DCE73..........E566D8AC5D1C045BA60"            decryptionKey="4252D6B2268.........67F451CE65D0F2ABE9BCD3A"            validation="SHA1"/>					
ملاحظة ولأن التعليمات البرمجية تستخدم منشئ أرقام عشوائية ، الإخراج يختلف كل مرة.

تحديث ملف التكوين

  1. حدد موقع في Machine.config أو Web.config في الملف.
  2. حدد موقع المقطع <system.web> في ملف التكوين.
  3. استبدال المقطع <machinekey>الإخراج من تطبيق وحدة التحكم. في حالة عدم وجود مقطع <machinekey>بإنشائه.
  4. حفظ ملف التكوين.
  5. إعادة تشغيل IIS على كافة الخوادم في المزرعة ويب حتى تسري التغييرات Machine.config.

استكشاف الأخطاء وإصلاحها

تأكد من أن المقطع <machinekey>به مفاتيح متماثلة واضحة (أي، لا تستخدمخيار AutoGenerate السمات في المقطع <machinekey>) عبر مزرعة ويب في السيناريوهات التالية:
  • عند استخدام مصادقة النماذج.
  • عند تشغيل حالة جلسة العمل في وضع StateServer.
  • متى تريد حالة العرض تتوفر عبر مزرعة ويب بسبب تعيين سمة enableViewStateMAC إلى True بشكل افتراضي.
مراجع
للحصول على معلومات إضافية، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
308157كيفية تنفيذ مصادقة مستندة إلى النماذج في تطبيقات ASP.NET باستخدام Visual Basic .NET
306238كيفية تطبيق الأمان المستند إلى الدور مع المصادقة المستندة إلى النماذج في تطبيقات ASP.NET باستخدام Visual Basic .NET
306590INFO: نظرة عامة حول أمان ASP.NET،
307626INFO: نظرة عامة حول تكوين ASP.NET
حالة العرض webfarm

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 313091 - آخر مراجعة: 10/29/2007 14:53:07 - المراجعة: 3.10

  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • kbmt kbproductlink kbconfig kbhowtomaster kbsecurity kbstate KB313091 KbMtar
تعليقات
s">