كائنات الحساب الأساسي Principal و كائنات الهوية Identity
يمكن أن تكتشف التعليمات البرمجية المُدارة الهوية أو الحساب الأساسي من خلال كائن Principal، والذي يحتوي على مرجع لكائن Identity. قد يكون من المفيد مقارنة كائنات الهوية وكائنات الحساب الأساسي مع المفاهيم المألوفة مثل حسابات المستخدمين والمجموعات. في معظم بيئات الشبكة، تمثل حسابات المستخدمين الأشخاص أو البرامج، بينما تمثل حسابات المجموعة فئة معينة من المستخدمين والحقوق التي تمتلكها. وبشكل مماثل، تمثل كائنات هوية .NET Framework، بينما تمثل الأدوار العضويات و السياقات الأمنية. في .NET Framework، يقوم كائن الحساب الأساسي بتغليف كل من كائن هوية ما و دور. تطبيقات .NET framework، تمنح الحقوق للحساب الأساسي استناداً إلى هويته أو، الأكثر شيوعاً، عضويته في دور ما.
كائنات Identity (هوية)
يقوم كائن الهوية بتغليف معلومات حول المستخدم أو الكيان الذي يتم التحقق من صحته. و بالمستوى الأساسي الخاص بهم، تحتوي كائنات الحسابات الأساسية على الاسم ونوع المصادقة. يمكن أن يكون الاسم إما اسم للمستخدم أو اسم حساب Windows، و مع أن نوع المصادقة يمكن أن يكون إما بروتوكول تسجيل دخول مدعوم، مثل Kerberos V5 أو قيمة مخصصة. يحدد .NET Framework كائن GenericIdentity و الذي يمكن استخدامه لمعظم سيناريوهات تسجيل الدخول المخصصة و كائن WindowsIdentity الأكثر تخصصاً والذي يمكن استخدامه عندما تريد للتطبيق الخاص بك الاعتماد على مصادقة Windows. و بالإضافة إلى ذلك، يمكنك تعريف فئة الهوية الخاصة بك و التي تقوم بتغليف معلومات المستخدم المخصصة.
تحدد واجهة IIdentity خصائص الوصول إلى الاسم و نوع المصادقة، مثل Kerberos V5 أو NTLM. كافة فئات Identity تطبق الواجهة IIdentity. لا توجد علاقة مطلوبة بين كائن Identity و الرمز المميز لعملية Windows NT التي يعمل تحتها مؤشر الترابط حالياً. ومع ذلك، إذا كان كائن Identity هو كائن WindowsIdentity، فيُفترض أن الهوية تمثل رمز أمان مميز لـ Windows NT.
كائنات Principal (حساب أساسي)
يمثل كائن الحساب الأساسي سياق الأمان الذي يتم تشغيل التعليمات البرمجية تحته. التطبيقات التي تطبق الأمان المستند إلى الدور تمنح الحقوق استناداً إلى الدور المقترن بكائن الحساب الأساسي. و بالتشابه مع كائنات الهوية، توفر .NET Framework كائن GenericPrincipal و كائن WindowsPrincipal. يمكنك أيضاً تعريف فئات الحساب الأساسي المخصصة الخاصة بك.
الواجهة IPrincipal تعرّف خاصية للوصول إلى كائن Identity المقترن بالإضافة إلى أسلوب لتحديد ما إذا كان المستخدم المعرّف بواسطة الكائن Principal عضواً في الدور المُعطى. كافة فئات Principal تطبق الواجهة IPrincipal بالإضافة إلى أية خصائص و أساليب إضافية تكون ضرورية. على سبيل المثال، توفر بيئة وقت تشغيل اللغة العامة الفئة WindowsPrincipal، التي تطبق وظائف إضافية لتعيين العضوية بالمجموعة لـ Windows NT أو Windows 2000 مع الأدوار.
كائن Principal المربوط بكائن سياق طلب استدعاء ( CallContext) ضمن مجال تطبيق (AppDomain). يتم دائمًا إنشاء سياق طلب استدعاء افتراضي كل AppDomain جديد، لذا دائماً يتوفر سياق طلب استدعاء لقبول الكائن Principal. عند إنشاء مؤشر ترابط جديد، يتم أيضاً إنشاء كائن CallContext لمؤشر الترابط. يتم نسخ مرجع الكائن Principal تلقائيًا من سياقCallContext لمؤشر الترابط المُنشئ إلى مؤشر الترابط الجديد. إذا لم تستطع بيئة وقت التشغيل تحديد كائن Principal الذي ينتمي إلى مُنشئ مؤشر الترابط، فستتبع السياسة الافتراضية لكائن Principal و Identity.
السياسة الخاصة بمجال التطبيق و القابلة للتكوين تعرّف قواعد لتحديد نوع كائن Principal للإقران مع مجال تطبيق جديد. و حيث تسمح سياسة الأمان، يمكن لبيئة وقت التشغيل إنشاء كائنات Principal و Identity والتي تعكس الرمز المميز لنظام التشغيل المقترن مع مؤشر ترابط التنفيذ الحالي. و بشكل افتراضي، تستخدم بيئة وقت التشغيل كائنات Principal و Identity والتي تمثّل المستخدمين غير المصادقين. لا تقوم بيئة وقت التشغيل بإنشاء كائنات Principal و Identity الافتراضية هذه حتى تحاول التعليمات البرمجية الوصول إليها.
التعليمات البرمجية الموثوق بها والتي تقوم بإنشاء مجال تطبيق يمكنها ضبط سياسة مجال التطبيق الذي يتحكم بإنشاء كائنات Principal و Identity الافتراضية. تُطبَق سياسة مجال التطبيق على كافة مؤشرات ترابط التنفيذ في مجال التطبيق ذلك. المضيف الموثوق به الغير مُدار له القدرة على تعيين هذه السياسة بشكل أساسي، ولكن بالنسبة للتعليمات البرمجية المُدارة يجب أن يكون لديها System.Security.Permissions.SecurityPermission للتحكم في سياسة المجال.
عند إرسال كائن Principal عبر مجالات التطبيق ولكن داخل نفس العملية (و بالتالي على نفس جهاز الكمبيوتر)، تقوم البنية الأساسية للاتصال عن بعد بنسخ مرجع لكائنPrincipal المقترن بسياق طالب الاستدعاء إلى سياق من يتم طلب استدعاؤه.
راجع أيضًا:
المهام
كيفية القيام بما يلي: إنشاء كائن WindowsPrincipal
كيفية القيام بما يلي: إنشاء كائنات GenericPrincipal و GenericIdentity
المبادئ
استبدال كائن حساب أساسي Principal