2012-05-09 10 views
5

बनाएं मुझे लगता है कि ऊपर उठाया विशेषाधिकारों के साथ चलाता है एक व्यवस्थापक ऐप है और मैं इसे एक निर्देशिका केवल सिस्टम प्रशासक का उपयोग कर सकते है कि में कुछ संवेदनशील फ़ाइलों को स्टोर करने की जरूरत है।एक व्यवस्थापक-ही सुलभ निर्देशिका

यह शायद निम्नलिखित कॉल के साथ क्या करना है, लेकिन मुझे यकीन है कि यह कैसे कॉन्फ़िगर नहीं हूँ।

Directory.CreateDirectory(@"C:\SomePath", new AccessControl.DirectorySecurity() { AccessRightType = ?, AccessRuleType = ?, AuditRuleType = ?); 

यदि इसे प्राप्त करने का एक बेहतर तरीका है, तो कृपया मुझे बताएं। धन्यवाद।

संपादित करें: एक अच्छा कार्यान्वयन here मिला। यदि कोई अन्य सुझाव हैं तो एक दिन के लिए सवाल खुल जाएगा।

+0

आप फ़ाइलों को इसके बजाय क्यों एन्क्रिप्ट नहीं करते? – MatteKarla

+0

मुझे लगता है कि एन्क्रिप्शन जाने का रास्ता होगा। –

+0

फ़ाइलें पहले ही एन्क्रिप्ट की गई हैं। नियमों को पूरा करने के लिए आवश्यक पहुंच नियंत्रण है। कोई विकल्प नहीं –

उत्तर

5

मिले एक अच्छा समाधान here

FileSystemAccessRule administratorRule = new FileSystemAccessRule("Administrators", FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow); 

FileSystemAccessRule guestRule = new FileSystemAccessRule("Guest", FileSystemRights.CreateDirectories | FileSystemRights.CreateFiles, AccessControlType.Allow); 

DirectorySecurity dirSec = new DirectorySecurity(); 
dirSec.AddAccessRule(administratorRule); 
dirSec.AddAccessRule(guestRule); 

Directory.CreateDirectory(@"C:\GuestTemp", dirSec); 
संबंधित मुद्दे