Разрешения для папки

Почему следующее правило доступа отображается как «Особое разрешение» при просмотре разрешений в окне свойств проводника? Я хочу, чтобы он отображался как обычный доступ «изменить».

var di = new DirectoryInfo(ConfigDirectory);
DirectorySecurity security = di.GetAccessControl();
var rule = new FileSystemAccessRule(domainSid, FileSystemRights.Modify, AccessControlType.Allow);
security.AddAccessRule(rule);
di.SetAccessControl(security);

domainSid = SID для пользователей домена.

  1. Как создать правило, чтобы оно наследовалось всеми файлами, созданными в этой папке?

person jgauffin    schedule 24.01.2011    source источник


Ответы (1)


Используйте это вместо этого:

var di = new DirectoryInfo(ConfigDirectory);
DirectorySecurity security = di.GetAccessControl();
var rule = new FileSystemAccessRule(domainSid, FileSystemRights.Modify, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow);
security.AddAccessRule(rule);
security.SetAccessRule(rule);
di.SetAccessControl(security);

Разница заключается в использовании конструктора FileSystemAccessRule, который позволяет указать наследование и вызов security.SetAccessRule(rule);.

person theChrisKent    schedule 24.01.2011