2010-05-09 11 views
8

मैं निर्देशिका में पूर्ण नियंत्रण जोड़ने के लिए निम्नलिखित सरल कोड का उपयोग कर रहा हूं, लेकिन यह काम नहीं करता है।निर्देशिका में पूर्ण नियंत्रण कैसे सेट करें?

 String dir_name = @"folder_full_path"; 
     DirectorySecurity dir_security = Directory.GetAccessControl(dir_name); 
     FileSystemAccessRule access_rule = new FileSystemAccessRule(@"AccountName", 
      FileSystemRights.FullControl, AccessControlType.Allow); 
     dSecurity.AddAccessRule(access_rule); 
     Directory.SetAccessControl(dir_name, dir_security); 

लेकिन इस कोड केवल विशेष अनुमति की लक्ष्य फ़ोल्डर के लिए निर्धारित किया है। यह कोड लगभग MSDN sample जैसा ही है। मैं एक उचित स्पष्टीकरण के लिए अपने सिर खरोंच कर रहा हूं ... उम्मीद है कि कोई मुझ पर कुछ प्रकाश डाल सकता है।

बहुत धन्यवाद।

+4

क्या होगा अगर आप 5-पैरामीटर निर्माता इस्तेमाल किया में मदद करता है इसके बजाय FileSystemAccessRule के लिए? http://msdn.microsoft.com/en-us/library/sfe70whw.aspx –

+3

धन्यवाद बेन। मैं इसे अब 5-पैरामीटर कन्स्ट्रक्टर के साथ कर सकता हूं। लेकिन मुझे नहीं पता कि 3-पैरामीटर कन्स्ट्रक्टर क्यों मौजूद है अगर यह काम नहीं करेगा? – smwikipedia

उत्तर

-3

:) चारों ओर मुड़ें।

  • एक निर्देशिका बनाएं।

  • अनुमतियां असाइन करें।

  • पढ़ें DirectorySecurity एसीएल और डीबगर वह वैसा दिखने में जाँच;)

देखा।

13

के बाद मूल एसीएल नियम मैं इसे निम्न कोड के साथ काम करने के लिए मिल गया है में से कुछ रिवर्स इंजीनियरिंग:

IdentityReference everybodyIdentity = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 

FileSystemAccessRule rule = new FileSystemAccessRule(
    everybodyIdentity, 
    FileSystemRights.FullControl, 
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 
    PropagationFlags.None, 
    AccessControlType.Allow); 

मई यह किसी भी आगे आगंतुक :)

+0

धन्यवाद, मुझे विश्वास है कि यह 5-पैरामीटर संस्करण है। – smwikipedia

+0

सही काम करता है, धन्यवाद! WellKnownSidType के लिए – Despertar

+1

+1। मुझे अपने कार्यक्रम में प्रशासक खाते की आवश्यकता है। – 010110110101

संबंधित मुद्दे