Разрешения для папок - PullRequest
       17

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

3 голосов
/ 24 января 2011

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

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. Как создать правило, чтобы оно наследовалось всеми файламикоторые созданы в этой папке?

1 Ответ

2 голосов
/ 24 января 2011

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

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);

...