Используйте группу домена для ACL C#

У меня есть четыре группы в моем активном каталоге:

  • ReadOnly
  • пользователей
  • Менеджеры
  • партнеры

И у меня есть Windows Server (2012), который содержит несколько папок:

  • администрация
  • общественного
  • ограниченный
  • планирование
  • Ressources

Как я могу использовать эти группы AD для применения правил доступа на этом сервере в моем приложении C#?

2 ответа

Решение

Есть способ сделать это!

Группы AD имеют следующие свойства:

group.properties["objectSID"];

Я использую это, чтобы:

SecurityIdentifier readOnlySID = new SecurityIdentifier(group.Properties["objectSID"][0] as byte[], 0);

И наконец:

FileSystemAccessRule(readOnlySID, FileSystemRights.Read, AccessControlType Allow);

Это единственный способ управлять ACL для группы AD!

Я уже сделал программу Вставьте ваши данные в C# и экспортируйте в файл Powershell и запустите его

введите описание изображения здесь

Вот код PowerShell для прав на запись

$acl = Get-Acl "\\Server\Testshare"
$acl.SetAccessRuleProtection($False,$false)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule('Server_Testshare_local','modify','ContainerInherit,ObjectInherit','None','Allow')
$acl.AddAccessRule($rule)
Set-Acl "\\Server\Testshare" $acl

И Читай Права

$acl = Get-Acl "\\Server\Testshare"
$acl.SetAccessRuleProtection($False,$false)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule('Server_Testshare_Read local','ReadAndExecute','ContainerInherit,ObjectInherit','None','Allow')
$acl.AddAccessRule($rule)
Set-Acl "\\Server\Testshare" $acl

И C# введите описание изображения здесь

Другие вопросы по тегам