Инструмент, который я разрабатываю, должен предоставить права доступа "Полный контроль" к файлу, созданному им. Он должен быть прочитан, изменен и удален из всех учетных записей 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
, который требуется (указан в конце в ссылке). Это дает привилегии даже будущим учетным записям.