我開發的工具需要將訪問權限「完全控制」授予由其創建的文件。它需要閱讀,修改和刪除所有Windows帳戶,甚至可能的未來帳戶。這可以實現嗎?如何授予我的應用程序爲所有用戶創建的文件的完整權限?
我知道我可以試試這個一SPECIFIC_USER:
FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow);
FileSecurity fSecurity = File.GetAccessControl(filePath);
fSecurity.SetAccessRule(rule);
File.SetAccessControl(filePath, fSecurity);
但我怎麼也發放給了所有用戶?甚至可能的未來賬戶?如果後一部分不可行,怎麼去解決第一個要求?
謝謝。
編輯:
這是我工作的代碼。取自回答者的鏈接。
private bool GrantAccess(string fullPath)
{
DirectoryInfo dInfo = new DirectoryInfo(fullPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule("everyone", FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,
PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
return true;
}
注意這是需要的PropagationFlags.NoPropagateInherit
(在鏈接朝最後提到的)。它確實授予甚至未來帳戶的特權。
請注意,不要使用「everyone」,而要使用'new SecurityIdentifier(WellKnownSidType.WorldSid,null)',它返回一個SecurityIdentifier對象。每個人只能在英文窗口安裝,使用其他方法確保它與多種語言版本兼容。 – 2013-04-24 15:17:21
@trukin你能讓它成爲答案嗎?謝謝 – nawfal 2013-04-24 18:27:56
@nawfal:我遇到了同樣的問題,我需要在安裝應用程序時訪問我的安裝文件夾,但我可以在哪裏編寫此代碼? – 2018-01-09 07:33:51