كيفية تعيين برمجياً نظام ملف NTFS أذونات المجلد باستخدام "واجهات خدمة Active Directory" في Microsoft Visual C#

ينطبق على: Windows Servers

مقدمة


توضح هذه المقالة خطوة بخطوة كيفية تعيين أذونات مجلد نظام ملف NTFS برمجياً باستخدام واجهات خدمة الدليل النشط (ADSI) في Microsoft Visual C#.

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


إنشاء نموذج التطبيق

لتشغيل التطبيق العينة التالية، يجب أن يكون لديك ملف ADsSecurity.dll وتثبيت الملف ADsSecurity.dll. هذه الملفات يتم تضمينه مع مجموعة تطوير البرامج (SDK) ل 2.5 واجهات خدمة الدليل النشط. لتحميل SDK ل 2.5 واجهات خدمة الدليل النشط، قم بزيارة موقع Microsoft التالي على الويب:ملاحظة: لتشغيل تطبيق نموذج، يجب أن يكون لديك بيانات اعتماد إدارية على الكمبيوتر. لإنشاء نموذج التطبيق، اتبع الخطوات التالية:
  1. بدء تشغيل Microsoft Visual Studio.NET أو Microsoft Visual Studio 2005.
  2. من القائمة ملف ، انقر فوقجديد، ومن ثم انقر فوق المشروع.
  3. في مشاريع Visual C#، انقر فوقتطبيق Windows ضمن قوالب. ملاحظة: في Visual Studio 2005، يتم تغيير مشاريع Visual C# إلى Visual C #.
  4. في المربع الاسم ، اكتبنتفسبيرميشنس، ومن ثم انقر فوقموافق.
  5. إضافة عنصر تحكم زر إلى النموذج Form1.
  6. من القائمة ' مشروع '، انقر فوق إضافة مرجع.
  7. انقر فوق علامة التبويب COM وانقر لتحديد العناصر التالية ثم انقر فوق موافق:
    • مكتبة النوع DS النشطة
    • مكتبة النوع أدسيكوريتي مقاس 2.5 بوصة
  8. انقر نقراً مزدوجاً فوق النموذج Form1 ومن ثم انقر فوقعرض التعليمات البرمجية.
  9. إضافة العبارات التالية استخدام أعلى التعليمات البرمجية المصدر في نموذج Form1.
    using ADSSECURITYLib;using ActiveDs;
  10. أضف الأسلوب التالي إلى الفئة Form1 .
    public void SetPermissions(String vPath, String UserName ){ADsSecurity objADsSec;SecurityDescriptor objSecDes;AccessControlList objDAcl;AccessControlEntry objAce1;AccessControlEntry objAce2;Object objSIdHex;ADsSID objSId;objADsSec = new ADsSecurityClass();objSecDes = (SecurityDescriptor) (objADsSec.GetSecurityDescriptor("FILE://" + vPath));objDAcl = (AccessControlList)objSecDes.DiscretionaryAcl;objSId = new ADsSIDClass();objSId.SetAs((int)ADSSECURITYLib.ADS_SID_FORMAT.ADS_SID_SAM, UserName.ToString());objSIdHex = objSId.GetAs((int)ADSSECURITYLib.ADS_SID_FORMAT.ADS_SID_SDDL);// Add a new access control entry (ACE) object (objAce) so that the user has Full Control permissions on NTFS file system files.objAce1 = new AccessControlEntryClass();objAce1.Trustee = (objSIdHex).ToString();objAce1.AccessMask = (int)ActiveDs.ADS_RIGHTS_ENUM.ADS_RIGHT_GENERIC_ALL;objAce1.AceType = (int)ActiveDs.ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;objAce1.AceFlags = (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE | (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ONLY_ACE | 1;objDAcl.AddAce(objAce1);// Add a new access control entry object (objAce) so that the user has Full Control permissions on NTFS file system folders.objAce2 = new AccessControlEntryClass();objAce2.Trustee = (objSIdHex).ToString();objAce2.AccessMask =  (int)ActiveDs.ADS_RIGHTS_ENUM.ADS_RIGHT_GENERIC_ALL;objAce2.AceType = (int)ActiveDs.ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;objAce2.AceFlags = (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE | 1;objDAcl.AddAce(objAce2);objSecDes.DiscretionaryAcl = objDAcl;// Set permissions on the NTFS file system folder.objADsSec.SetSecurityDescriptor(objSecDes,"FILE://" + vPath);}
  11. انقر فوق علامة التبويب Form1.cs تصميم للتبديل إلى وضع التصميم.
  12. انقر نقراً مزدوجاً فوق button1. استبدال رمز الحدثbutton1_Click مع التعليمات البرمجية التالية.
    private void button1_Click(object sender, System.EventArgs e){try {// Set <Domain> to your domain name.// Set <UserName> to the user account.SetPermissions("C:\\Test", "<Domain>\\<UserName>");MessageBox.Show("Full Access control granted.");}catch (Exception ex){MessageBox.Show(ex.Message);}}
    ملاحظة: استبدل < المجال > اسم المجال. استبدل < اسم المستخدم > اسم المستخدم الذي تريد منحة أذونات.
  13. في بنية القائمة، انقر فوق إنشاء حلول.

اختبار نموذج التطبيق

  1. إنشاء مجلد في مجلد جذر محرك الأقراص C. اسم المجلد الاختبار.
  2. في مستكشف Windows، انقر نقراً مزدوجاً فوق المجلد الاختبار، ومن ثم انقر فوق خصائص.
  3. في مربع الحوار خصائص الاختبار ، انقر فوق علامة التبويب أمان .
  4. حدد حساب المجال الذي يتم تشغيل هذا الاختبار. إذا لم يكن الحساب مدرجاً في القائمة، انقر فوق إضافةثم قم بإضافة حساب المجال إلى القائمة.
  5. تحت أذونات، انقر لإلغاء تحديد خانة الاختيار "التحكم الكامل " لتقييد الأذونات على المجلد "اختبار" لهذا المستخدم. ثم انقر فوق موافق.
  6. تشغيل تطبيق NTFSPermission.exe. بشكل افتراضي، يتم عرضForm1 .
  7. انقر فوق " button1". تتلقى الرسالة التالية:
    منح التحكم الوصول الكامل.
  8. انقر فوق موافق لإغلاق مربع الرسالة.
  9. قم بإغلاق النموذج لإنهاء التطبيق.
  10. في مستكشف Windows، افتح المجلد C:\ .
  11. انقر نقراً مزدوجاً فوق المجلد الاختبار ومن ثم انقر فوق خصائص.
  12. في مربع الحوار خصائص الاختبار ، انقر فوق علامة التبويب أمان .
  13. حدد حساب المجال الذي يتم تشغيل هذا الاختبار، ثم تحقق من الأذونات على المجلد الاختبار.
أصبحت المستخدم المحدد أذونات "التحكم الكامل" على مجلد الاختبار.

المراجع


لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة معارف Microsoft":
كيفية استخدام ADsSecurity.dll لإضافة إدخال تحكم بوصول إلى مجلد NTFS 279682
كيفية استخدام ADSI لتعيين تلقائي توريث أذونات الملفات/المجلدات 266461