दिलचस्प पोस्ट
सादे अंग्रेजी में PHP इको और PHP रिटर्न में क्या अंतर है? "" MyApp.app "फ़ाइल को खोला नहीं जा सका क्योंकि आपको इसे देखने की अनुमति नहीं है" जब Xcode 6 बीटा में ऐप चलाते हैं Raw_input का व्यवहार () पायथन: subprocess.communicate () से स्ट्रीमिंग इनपुट पढ़ें इकाई फ़्रेमवर्क async कार्रवाई को पूरा करने के लिए दस गुना लंबा समय लगता है कैसे जावा इंटरफेस कई विरासत अनुकरण करते हैं? कक्षा और उदाहरण तरीकों के बीच का अंतर मैं TransactionScope का उपयोग सी # में कैसे करूं? एंड्रॉइड – कस्टम विशेषताओं के साथ कस्टम यूआई मैं एक पायथन ऑब्जेक्ट कैसे सही तरीके से साफ कर सकता हूं? टेबल-वैल्यूएबल फंक्शन को कॉल करते समय क्वेरी इशारा जोड़ना अनुप्रयोग की निर्देशिका को एक WPF अनुप्रयोग से प्राप्त करना सरणी योग और औसत सी ++ 11 में डायनेमिक गठबंधन मेमोरी आवंटन IE7 में जावास्क्रिप्ट डीबग करना

C # .NET का उपयोग कर फ़ोल्डर में "प्रत्येक व्यक्ति" विशेषाधिकार जोड़ें

प्रत्येक व्यक्ति को फ़ोल्डर में पहुंचने की अनुमति देने के लिए मैंने नीचे दिए गए कोड का उपयोग किया है:

System.Security.AccessControl.DirectorySecurity sec = System.IO.Directory.GetAccessControl(directory, AccessControlSections.All); FileSystemAccessRule accRule = new FileSystemAccessRule("Everyone", FileSystemRights.Modify, AccessControlType.Allow); sec.AddAccessRule(accRule); // setACL sec.ResetAccessRule(accRule); 

अब, प्रत्येक उपयोगकर्ता को फ़ोल्डर में जोड़ा जाता है, लेकिन निर्दिष्ट अधिकार के साथ नहीं। सभी को पढ़ा, लिखना, निष्पादन आदि। चेकबॉक्स चेक नहीं किए गए हैं।

वेब के समाधान से एकत्रित समाधान "C # .NET का उपयोग कर फ़ोल्डर में "प्रत्येक व्यक्ति" विशेषाधिकार जोड़ें"

सबसे पहले मैं आपको यह बताना चाहता हूं कि मुझे यह समाधान कैसे मिला। यह संभवतः जवाब से अधिक महत्वपूर्ण है क्योंकि फ़ाइल अनुमतियाँ सही पाने के लिए कठिन हैं।

सबसे पहली बात यह थी कि मैंने विंडोज डायलॉग्स और चेकबॉक्स का इस्तेमाल करना चाहता था। मैंने "प्रत्येक व्यक्ति" के लिए एक नियम जोड़ा और "पूर्ण नियंत्रण" को छोड़कर सभी बक्से को चेक किया।

तब मैंने यह सी # कोड लिखा था, मुझे बताएं कि मुझे विंडोज सेटिंग्स की नकल करने के लिए कौन से मापदंड हैं I

 string path = @"C:\Users\you\Desktop\perms"; // path to directory whose settings you have already correctly configured DirectorySecurity sec = Directory.GetAccessControl(path); foreach (FileSystemAccessRule acr in sec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { Console.WriteLine("{0} | {1} | {2} | {3} | {4}", acr.IdentityReference.Value, acr.FileSystemRights, acr.InheritanceFlags, acr.PropagationFlags, acr.AccessControlType); } 

इसने मुझे आउटपुट की यह पंक्ति दी:

 Everyone | Modify, Synchronize | ContainerInherit, ObjectInherit | None | Allow 

तो समाधान सरल है (यदि आप नहीं जानते कि क्या सही है तो इसे पाने के लिए मुश्किल है!):

 DirectorySecurity sec = Directory.GetAccessControl(path); // Using this instead of the "Everyone" string means we work on non-English systems. SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null); sec.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Modify | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow)); Directory.SetAccessControl(path, sec); 

इससे विंडोज सुरक्षा डायलॉग पर चेकबॉक्सेज़ मिलेंगे जो आपने पहले ही अपनी परीक्षण निर्देशिका के लिए सेट कर दिया है।

फ़ोल्डर अस्तित्व के लिए नीचे दिए गए कोड चेक, यदि नहीं बनाया गया है, तो एक बनाता है और फिर हर उपयोगकर्ता सेट करता है- उस फ़ोल्डर की पूर्ण अनुमति के साथ अनुमति (पढ़ना और लिखें)।

 string file = @"D:\Richi"; private static void GrantAccess(string file) { bool exists = System.IO.Directory.Exists(file); if (!exists) { DirectoryInfo di = System.IO.Directory.CreateDirectory(file); Console.WriteLine("The Folder is created Sucessfully"); } else { Console.WriteLine("The Folder already exists"); } DirectoryInfo dInfo = new DirectoryInfo(file); DirectorySecurity dSecurity = dInfo.GetAccessControl(); dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow)); dInfo.SetAccessControl(dSecurity); } 

FileSystemRights.FullControl बजाय का उपयोग करें। यदि आप सभी कार्यों (एसीएल) को अनुमति देना चाहते हैं तो FileSystemRights.Modify