Как добавить разрешения для OU с помощью C#?
Я могу получить объект OU, как....
DirectoryEntry de = new DirectoryEntry(
"LDAP://domain.com",
"DOMAIN\\Administrator",
"Password");
DirectoryEntry ouEntry = de.Children.Find("OU=my-users,DC=domain,DC=com");
Но я не могу найти какие-либо классы или библиотеки для добавления разрешений. Я хочу дать "MyGroup" разрешение на создание и удаление объектов в этом подразделении. Я могу сделать это вручную в ADSIEdit, выбрав OU и используя вкладку Безопасность, но не могу найти эквивалентный код.
1 ответ
Решение
Попробуй это
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);
Дайте мне знать, если это работает для вас.
Raymund http://anyrest.wordpress.com/