मेरे पास एक ऐसा प्रोग्राम है जो उपयोगकर्ता आउटपुट के लिए एक सुरक्षित निर्देशिका बना रहा है। यह सही तरीके से काम कर रहा है, लेकिन जिन फाइलों में मैं इसे बना रहा हूं (या इसकी प्रतिलिपि) केवल व्यवस्थापक पहुंच के साथ समाप्त हो रहे हैं।फ़ाइल अनुमतियों को निर्देशिका अनुमतियों का उत्तराधिकारी नहीं है
DirectoryInfo outputDirectory =
baseOutputDirectory.CreateSubdirectory(outputDirectoryName,
GetDirectorySecurity(searchHits.Request.UserId));
...
private DirectorySecurity GetDirectorySecurity(string owner)
{
const string LOG_SOURCE = "GetDirectorySecurity";
DirectorySecurity ds = new DirectorySecurity();
System.Security.Principal.NTAccount ownerAccount =
new System.Security.Principal.NTAccount(owner);
ds.SetOwner(ownerAccount);
ds.AddAccessRule(
new FileSystemAccessRule(owner,
FileSystemRights.FullControl,
AccessControlType.Allow));
//AdminUsers is a List<string> that contains a list from configuration
// That represents the admins who should be allowed
foreach (string adminUser in AdminUsers)
{
ds.AddAccessRule(
new FileSystemAccessRule(adminUser,
FileSystemRights.FullControl,
AccessControlType.Allow));
}
return ds;
}
/// <summary>
/// This method copies any static supporting files, such as javascripts
/// </summary>
/// <param name="outputDirectory"></param>
private void CopySupportingFiles(DirectoryInfo outputDirectory)
{
foreach (FileInfo file in SupportingFiles)
{
file.CopyTo(
Path.Combine(outputDirectory.FullName, file.Name));
}
}
आदि, आदि, आदि
क्या मैं गलत कर रहा हूँ? अनुमति कैस्केडिंग क्यों नहीं हैं?
यह समझ में आता है स्कॉट, मुझे इसे आज़माएं। –