gpt4 book ai didi

c# - 以编程方式将访问控制列表 (ACL) 权限分配给 'this folder, subfolders and files'

转载 作者:可可西里 更新时间:2023-11-01 12:31:51 29 4
gpt4 key购买 nike

我必须使用 C#.NET 以编程方式分配文件夹及其子文件夹和文件的权限。我这样做如下:

var rootDic = @"C:\ROOT";
var identity = "NETWORK SERVICE"; //The name of a user account.
try
{
var accessRule = new FileSystemAccessRule(identity,
fileSystemRights: FileSystemRights.Modify,
inheritanceFlags: InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
propagationFlags: PropagationFlags.InheritOnly,
type: AccessControlType.Allow);

var directoryInfo = new DirectoryInfo(rootDic);

// Get a DirectorySecurity object that represents the current security settings.
DirectorySecurity dSecurity = directoryInfo.GetAccessControl();

// Add the FileSystemAccessRule to the security settings.
dSecurity.AddAccessRule(accessRule);

// Set the new access settings.
directoryInfo.SetAccessControl(dSecurity);
}
catch (Exception ex)
{
//...
}

它确实为我的“C:\ROOT”文件夹分配了权限。但它仅将权限分配给子文件夹和文件,而不分配给“ROOT”文件夹。 enter image description here

问:如何定义 FileSystemAccessRule 实例来为 ROOT 文件夹、子文件夹和文件分配权限?

最佳答案

您只需删除 PropagationFlags.InheritOnly 标志。通过指定您声明 ACE 不应应用于目标文件夹。请改用 PropagationFlags.None。你可能会发现这个 MSDN article有帮助。

关于c# - 以编程方式将访问控制列表 (ACL) 权限分配给 'this folder, subfolders and files',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10578026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com