如何將文件所有者更改爲Everyone
並允許Everyone
對象Full Access
?更改文件的ACL以允許所有人都可以完全訪問
是否有任何API可用於此?我必須使用P/Invoke嗎?
我到處搜索,但找不到任何東西來做到這一點。
如何將文件所有者更改爲Everyone
並允許Everyone
對象Full Access
?更改文件的ACL以允許所有人都可以完全訪問
是否有任何API可用於此?我必須使用P/Invoke嗎?
我到處搜索,但找不到任何東西來做到這一點。
事實上,有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。
可以使用'fileSecurity.SetOwner'。 –
因爲字符串「Everyone」是本地化的,所以你應該使用'new SecurityIdentifier(WellKnownSidType.WorldSid,null)'來代替'new NTAccount(...)'(即它在非英語操作系統上是不同的! ) –
您可以使用FileInfo.GetAccessControl
和File.SetAccessControl
方法
檢查在MSDN鏈接中給出的示例代碼File.SetAccessControl
你不能讓每個人都成爲一個對象的所有者 –
@DavidHeffernan我相信你錯了。嘗試使用文件屬性中的安全選項卡手動設置所有者。它會讓你將所有者設置爲每個人都沒有任何問題。 – Elmo