البنية الخاصة بتقنية ACL
<هذه مقاطع من مواضيع أعجبتني من مكتبة تعليمات فيجوال ستوديو 2010, أرجو أن تنال إعجابكم. المقالة الأساسية موجودة هنا>
توفر مساحة الاسم System.Security.AccessControl الوصول إلى قائمة التحكم بالوصول (ACLs) عبر فئات ملائمة و التي تتخلص من الكثير من تعقيدات نظام أمان ACL الخاص بنظام Windows. بالإضافة إلى ذلك، تحتوي مساحة الاسم System.Security.AccessControl على عدة فئات و التي توفر الوصول المتقدم إلى نظام أمان ACL الخاص بنظام Windows.
توفر .NET Framework الوصول إلى قوائم ACL للموارد التالية:
- مفاتيح التشفير
- دلائل
- معالجات حدث الانتظار Wait
- الملفات
- كائنات المزامنة
- مفاتيح التسجيل
- الإشارات
لدى كل من هذه الموارد عدة فئات يمكنك استخدامها لإنشاء وتعديل قوائم ACL.
التسلسل الهيكلي لفئات ACL
لمعظم السيناريوهات يمكنك استخدام الفئات التجريدية ذات المستوى الأعلى، بدلاً من الفئات المتقدمة لإنشاء وتعديل قوائم ACL. لكل مورد، تأخذ الفئات الأعلى النموذج التالي:
- فئة تغلف قائمة التحكم بالوصول الاختياري (DACL) وقائمة التحكم بالوصول للنظام (SACL). تأخذ هذه الفئة الاسم < Resource Name >Security . على سبيل المثال، الفئاتFileSecurity و DirectorySecurity تغلف قوائم DACL و SACL للملفات و المجلدات.
- فئة تغلف إدخال التحكم بالوصول (ACE). تأخذ هذه الفئة الاسم < Resource Name >AccessRule .
- فئة تغلف إدخال تدقيق ACE. تأخذ هذه الفئة الاسم < Resource Name >AuditRule .
- تسمح لك العديد من قوائم التعداد بإنشاء قواعد وصول وتدقيق محددة.
- للحصول على قائمة كاملة من كل فئات ACL ذات المستوى الأعلى، أنظر الملخص التقني لقوائم التحكم بالوصول ACL.
إضافة إدخالات ACE إلى قوائم ACL
بعد إنشاء إدخال ACE باستخدام أحد فئات قاعدة الوصول أو قاعدة التدقيق، يمكنك إضافة القاعدة إلى مورد ما أو أو استخدامها لإزالة قاعدة موجودة من مورد ما. على سبيل المثال، قد تقوم بإنشاء قاعدة باستخدام الفئة FileSystemAccessRule مع تحديد أن المسؤولين فقط يمكنهم فتح ملف ما. يمكنك بعد ذلك إضافة تلك القاعدة إلى كائن FileSecurity أو إزالة قاعدة مشابهة من الكائن FileSecurity.
لن تضمن إضافة إدخال ACE لمنح الوصول إمكانية حساب أساسي ما للوصول و ذلك لأن قاعدة الرفض دائماً تحل محل قاعدة السماح. على سبيل المثال، إذا قمت بإضافة قاعدة سماح بالوصول لحساب نظامي ما، فلا يعني ذلك أنه سيكون للشخص إمكانية الوصول لأنه من المحتمل أن يكون قد تم منعهم من الوصول للملف عن طريق قاعدة أخرى.
كل كائن < Resource Name >Security مقترن بمورد ما يوفر الأساليب التالية لإضافة أو إزالة قواعد الوصول و قواعد التدقيق.
Method |
الوصف |
AddAccessRule -و- AddAuditRule |
البحث عن قاعدة وصول أو تدقيق يمكن دمجها مع القاعدة الجديدة. إذا لم يتم العثور على شئ ، ستتم إضافة القاعدة الجديدة. |
SetAccessRule |
لإزالة كافة قواعد التحكم بالوصول و التي تخص نفس المستخدم و القيمة AccessControlType ( Allow أو Deny) بالقاعدة المحددة ثم إضافة القاعدة المحددة. |
SetAuditRule |
إزالة كافة قواعد التدقيق التي تخص نفس المستخدم بالقاعدة المحددة بغض النظر عن قيمة AuditFlags، ثم إضافة القاعدة المحددة. |
ResetAccessRule |
إزالة كافة قواعد الوصول التي تخص نفس المستخدم بالقاعدة المحددة، بغض النظر عن قيمة AccessControlType، ثم إضافة القاعدة المحددة. |
RemoveAccessRule |
البحث عن قاعدة تحكم بالوصول لها نفس المستخدم و القيمة AccessControlType ( Allow أو Deny) كما للقاعدة المحددة و بها علامات متوافقة للوراثة و النشر. في حالة العثور عليها، تتم إزالة الحقوق الموجودة في قاعدة الوصول المحددة من القاعدة. |
RemoveAuditRule |
البحث عن قاعدة تحكم بالتدقيق لها نفس المستخدم كما للقاعدة المحددة و بها علامات متوافقة للوراثة و النشر. في حالة العثور عليها، تتم إزالة الحقوق الموجودة في القاعدة المحددة من القاعدة. |
RemoveAccessRuleAll |
البحث عن كافة قواعد الوصول التي لها نفس المستخدم و القيمة AccessControlType ( Allow أو Deny) كما للقاعدة المحددة ثم تقوم بإزالتها إذا تم العثور عليها. |
RemoveAuditRuleAll |
البحث عن كافة قواعد التدقيق التي تخص نفس المستخدم بالقاعدة المحددة، و تقوم بإزالتها إذا تم العثور عليها. |
RemoveAccessRuleSpecific -و- RemoveAuditRuleSpecific |
البحث عن قاعدة الوصول أو التدقيق و التي تطابق تماماً القاعدة المحددة، وإذا عُثِر عليها، تتم إزالتها. |
AddAccessRule -و- AddAuditRule |
البحث عن قاعدة وصول أو تدقيق يمكن دمجها مع القاعدة الجديدة. إذا لم يتم العثور على شئ ، ستتم إضافة القاعدة الجديدة. |
الحصول على قوائم ACL و ضبطها
يحتوي كل مورد محمي على أساليب للحصول على و ضبط كائن < Resource Name >Security المقترن بمورد ما. للحصول على قوائم ACL الموجودة لموارد معينة، استخدم أحد أساليب GetAccessControl المقترنة بالمورد. لنشر التغييرات مرة أخرى لمورد ما، استخدم أحد أساليب SetAccesscontrol المقترنة بالمورد. لاحظ أنه لا يتم نشر التغييرات مرة أخرى إلى المورد حتى تقوم بإعادة تطبيقها بشكل صريح باستخدام أحد أساليب الضبط.
للحصول على قائمة كاملة بكافة أساليب الحصول على و ضبط كل مورد محمي، أنظر الملخص التقني لقوائم التحكم بالوصول ACL.
راجع أيضًا:
موارد أخرى