2010-08-06 4 views
1

Je peux obtenir l'objet OU comme ....Comment ajouter des autorisations à une unité d'organisation à l'aide de C#?

 DirectoryEntry de = new DirectoryEntry(
      "LDAP://domain.com", 
      "DOMAIN\\Administrator", 
      "Password"); 
     DirectoryEntry ouEntry = de.Children.Find("OU=my-users,DC=domain,DC=com"); 

Mais je ne peux pas sembler trouver des classes ou des bibliothèques pour ajouter des autorisations. Je souhaite donner à "MyGroup" la permission de créer et de supprimer des objets dans cette unité d'organisation. Je peux le faire manuellement dans ADSIEdit en sélectionnant l'unité d'organisation et en utilisant l'onglet Sécurité, mais je ne trouve pas le code équivalent.

Répondre

1

Essayez celui

DirectoryEntry rootEntry = new DirectoryEntry("LDAP://OU=Test OU,DC=test,DC=com"); 
DirectorySearcher dsFindOUs = new DirectorySearcher(rootEntry); 

dsFindOUs.Filter = "(objectClass=organizationalUnit)"; 
dsFindOUs.SearchScope = SearchScope.Subtree; 
SearchResult oResults = dsFindOUs.FindOne(); 
DirectoryEntry myOU = oResults.GetDirectoryEntry(); 

System.Security.Principal.IdentityReference newOwner = new System.Security.Principal.NTAccount("YourDomain", "YourUserName").Translate(typeof(System.Security.Principal.SecurityIdentifier)); 
ActiveDirectoryAccessRule newRule = new ActiveDirectoryAccessRule(newOwner, ActiveDirectoryRights.GenericAll, System.Security.AccessControl.AccessControlType.Allow); 
myOU.ObjectSecurity.SetAccessRule(newRule); 

Laissez-moi savoir si cela fonctionne pour vous.

Raymund http://anyrest.wordpress.com