更改文件的ACL以允许每个人的完全访问权限

时间:2013-07-20 15:06:08

标签: c# .net vb.net pinvoke acl

如何将文件所有者更改为Everyone并允许Everyone对象Full Access

有没有可用的API?我必须使用P / Invoke吗?

我到处搜索但找不到任何可以做到的事情。

2 个答案:

答案 0 :(得分:8)

确实,有API可用于此。您可能希望查看System.IO命名空间中的File.SetAccessControl方法。

// Read the current ACL details for the file
var fileSecurity = File.GetAccessControl(fileName);

// Create a new rule set, based on "Everyone"
var fileAccessRule = new FileSystemAccessRule(new NTAccount("", "Everyone"),
      FileSystemRights.FullControl, 
      AccessControlType.Allow);

// Append the new rule set to the file
fileSecurity.AddAccessRule(fileAccessRule);

// And persist it to the filesystem
File.SetAccessControl(fileName, fileSecurity);

前面提到的文章有很多关于ACL的好东西。

答案 1 :(得分:0)

您可以使用FileInfo.GetAccessControlFile.SetAccessControl方法

检查MSDN链接中为File.SetAccessControl

指定的示例代码