У меня есть код с использованием DirectoryEntry
для управления локальной Active Directory через LDAP. В настоящее время я найти конкретный OU
, добавить пользователь к нему, обновить свойства пользователя, а затем совершить все изменения:LDAP: Как добавить нового пользователя в группу внутри OU
DirectoryEntry ldapRoot = new DirectoryEntry(ldapString, user, password);
DirectoryEntry userGroup = ldapRoot.Children.Find("OU=OUGroup");
DirectoryEntry newUser = userGroup.Children.Add("CN=" + userName, "user");
newUser.Properties["displayName"].Value = displayName;
...
newUser.CommitChanges();
userGroup.Close();
ldapRoot.Close();
ldapString что-то сродни LDAP:\\DC=company,DC=local
, в основном это просто извлечение корневой записи.
Я изменяю несколько свойств, но все работает нормально. Тем не менее, у меня есть еще один OU
, называемый SharePoint_Groups, в котором есть группа внутри Internal
. Я хочу добавить нового пользователя в качестве члена этой группы, но я не понимаю, как это сделать. Я попытался следующие:
DirectoryEntry spGroup = ldapRoot.Children.Find("OU=Sharepoint_Groups");
DirectoryEntry internal = spGroup.Children.Find("CN=Internal");
Это не работает, и я не знаю, как мне следует обратиться Internal
- это CN = правильно или я должен использовать некоторые другие спецификации?
И как только у меня есть правильная группа, как мне добавить к ней существующего пользователя?
Заранее спасибо
Работала отлично, кажется, что это ошибка при выполнении Add(), потому что я использовал только «CN = username» вместо полного DN. Благодаря! –
Любая идея, почему это работает локально, но выбрасывает «Доступ запрещен» при перемещении на сервер IIS? –
@PlatypusMaximus: звучит как разрешения - локально этот код запускается в контексте вашего собственного пользователя - в Интернете, скорее всего, в контексте пользователя пула приложений IIS –