سؤال

وكتبت رمز لتعيين إذن المجلد. وكانت وظيفة أنا وضعت

public void SetPermission(string user,FileSystemRights rights)
{
    DirectoryInfo dInfo = new DirectoryInfo(folderPath);
    DirectorySecurity oDirectorySecurity = new DirectorySecurity();

    oDirectorySecurity.AddAccessRule(new FileSystemAccessRule(user, rights, AccessControlType.Allow));
    dInfo.SetAccessControl(oDirectorySecurity);
}

وهذه الوظيفة يسير على ما يرام لتعيين إذن للمستخدم. ولكن عندما تحقق خصائص المجلد -> الأمن، وأضاف المستخدم. ولكن لا يوجد إذن محددا في مربع فتح dialogbox متقدمة. في هذا الإطار أستطيع أن أرى إذن، التي أنا واضع للمستخدم.

وهكذا سؤالي هو: لماذا لا يوجد مربع seleced على علامة التبويب أمان، ولكن هناك في التبويب متقدمة؟

يرجى مساعدتي !!!!!!

هل كانت مفيدة؟

المحلول

وجريت إلى هذا أيضا. ويبدو أن شيئا تصحيح الخدمة.

ويمكنك أن تقرأ كيف أنها ثابتة على HTTP: // jspot.jerryhanel.com/2009/01/08/c-filedirectory-permissions/

والنص القصير: لديك لتعيين إشارة لجميع قوائم ACL لجميع المستخدمين. نعم ... انها قبيحة. وعند إضافة حزمة الخدمة Service Pack 3، وعلامة في مربع تذهب بعيدا مرة أخرى. إذا كان أي شخص لديه حل أنظف من هذا، واسمحوا لي أن أعرف.

ولدي رمز لأنه في موقعي.

<القوي> UPDATE : ل. وURL يشير الآن إلى الموقع الجديد

نصائح أخرى

وقد تساعد على استخدام dInfo.GetAccessControl تهيئة oDirectorySecurity. يمكنك أيضا محاولة يدعو oDirectorySecurity.SetOwner.

وأحيانا أذونات تظهر فقط في مرحلة متقدمة إذا لم يتم تطبيقها على لتصحيح الكائنات. حاول إعداد أعلام الوراثة / Propigation على الكائن FileSystemAccessRule الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top