首页 > 解决方案 > 如何禁用长路径文件夹上的 ACL 继承?

问题描述

我正在尝试将 ACL(权限)从源文件夹复制到目标。文件夹路径是长路径,所以不能使用 .net 内置函数。

我正在使用GetNamedSecurityInfo读取源文件夹SetNamedSecurityInfo的 ACL 并编写 ACL。

我想关闭目标上的 ACL 继承以匹配源,但SetNamedSecurityInfo始终启用继承。

我们可以使用以下 .Net 内置方法禁用普通路径(不是长路径)的继承。请建议一些 win32 COM API (pinvoke) 的方法来实现长路径相同。

DirectorySecurity dSecurityOut = System.IO.Directory.GetAccessControl(destinationNormalPath);
dSecurityOut.SetAccessRuleProtection(true,false);
System.IO.Directory.SetAccessControl(destinationNormalPath, dSecurityOut);

标签: c#.netpinvoke

解决方案


推荐阅读