2017-07-18 2 views
1

Ich habe vier Gruppen in meiner aktiven Verzeichnis:Verwenden Domäne-Gruppe für ACL C#

  • Readonly
  • Benutzer
  • Manager
  • Partners

Und ich habe einen Windows Server (2012), die einige Ordner enthält:

  • Verwaltung
  • Öffentliche
  • Restricted
  • Planung
  • Ressources

Wie kann ich diese AD-Gruppen verwenden Zugriffsregeln auf diesem Server in meinem C# app bewerben?

Antwort

0

Es gibt einen Weg, es zu tun!

AD-Gruppen haben diese Eigenschaften:

group.properties["objectSID"]; 

Ich benutze es zu:

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

Und schließlich:

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

Dies ist der einzige Weg, ACL für einen AD zu verwalten Gruppe!

0

Ich habe bereits das Programm Powershell-Datei Ihre Daten zu C# und Export einsetzen und

enter image description here

Hier ist der Powershell-Code für Schreibrechte

$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 

laufen Und lesen Sie die Rechte

$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 

Und C# enter image description here

+0

Ich möchte nur verwenden C#:/ –

+0

@BaptisteMarcos Sorry Mann, würde nicht einen Weg, dies ohne Powershell –

+0

@BaptisteMarcos wissen wollen Sie hier https: //stackoverflow.com/questions/23780010/sharing-a-folders-Erlaubnis-in-c-sharp –