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

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

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

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

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

في هذه المهمة

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


متطلبات

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

back to the top

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

إنشاء تطبيق وحدة Visual C# .NET:
  1. بدء تشغيل Visual Studio .NET.
  2. من القائمة ملف ، أشر إلى جديد ثم انقر فوق المشروع.
  3. ضمن أنواع Project ، انقر فوق Visual C# المشاريع.
  4. ضمن قوالب ، انقر فوق تطبيق وحدة التحكم.
  5. اسم المشروع HashConfigCs.
  6. انقر فوق موافق.

كتابة التعليمات البرمجية لإنشاء المفاتيح

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

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

Add the following code to a .cs file:
using System;using System.Text;using System.Security.Cryptography;namespace Crypto{    public class KeyCreator    {        public static void Main(String[] args)        {			            String[] commandLineArgs = System.Environment.GetCommandLineArgs();            string decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs[1]));            string validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs[2]));            Console.WriteLine("<machineKey validationKey=\"{0}\" decryptionKey=\"{1}\" validation=\"SHA1\"/>", validationKey, decryptionKey);        }	        static String CreateKey(int numBytes)         {            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();            byte[] buff = new byte[numBytes];            rng.GetBytes(buff);            return BytesToHexString(buff);        }        static String BytesToHexString(byte[] bytes)         {            StringBuilder hexString = new StringBuilder(64);            for (int counter = 0; counter < bytes.Length; counter++)             {                hexString.Append(String.Format("{0:X2}", bytes[counter]));            }            return hexString.ToString();        }    }}				

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

الآن يمكن ترجمة التطبيق.

تشغيل التطبيق من موجه الأوامر بواسطة التمرير في قيمتين عدد صحيح يتم حجم فك التشفير ومفاتيح التحقق من الصحة. على سبيل المثال، إذا قمت بتسميته تطبيق وحدة التحكم HashConfigCs.exe اكتب بناء الجملة التالي من سطر الأوامر في الدليل Bin\debug التطبيق:
hashconfigcs.exe 24 64
يمكنك توقع التطبيق لإرجاع إخراج مشابه الإخراج التالي:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"            validation="SHA1"/>					
ملاحظة بسبب التعليمة البرمجية استخدام منشئ أرقام عشوائية الإخراج يختلف كل مرة.


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

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

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

تأكد من أن المقطع <machinekey>به مفاتيح متماثلة واضحة (أي، لا تستخدمخيار AutoGenerate السمات في المقطع <machinekey>) عبر مزرعة ويب في السيناريوهات التالية:
  • عند استخدام مصادقة النماذج.
  • عند تشغيل حالة جلسة العمل في وضع StateServer.
  • متى تريد حالة العرض تتوفر عبر مزرعة ويب بسبب تعيين سمة enableViewStateMAC إلى True بشكل افتراضي.

مزيد من المعلومات

يجب أن المقطع machineKey يكون نفس عبر مزرعة ويب في الحالات التالية:
  • عند استخدام "مصادقة النماذج".
  • عند تشغيل حالة جلسة العمل في وضع StateServer.
  • عندما تريد حالة العرض تتوفر عبر مزرعة ويب منذ enableViewStateMac قيد التشغيل بشكل افتراضي.
مراجع
للحصول على معلومات إضافية، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
301240كيفية تنفيذ مصادقة مستندة إلى النماذج في تطبيقات ASP.NET باستخدام C# .NET
311495كيفية تطبيق الأمان المستند إلى الدور مع المصادقة المستندة إلى النماذج في تطبيقات ASP.NET باستخدام Visual C# .NET
306590INFO: نظرة عامة حول أمان ASP.NET،
307626INFO: نظرة عامة حول تكوين ASP.NET
حالة العرض

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

خصائص

رقم الموضوع: 312906 - آخر مراجعة: 07/11/2005 17:22:09 - المراجعة: 3.10

  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • kbmt kbconfig kbhowtomaster kbsecurity kbstate KB312906 KbMtar
تعليقات
script>