LDAP: как добавить нового пользователя в группу внутри подразделения - PullRequest
2 голосов
/ 04 ноября 2010

У меня есть код, использующий DirectoryEntry для управления локальным Active Directory через 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 = правильным или я должен использовать какую-то другую спецификацию?

И, как только у меня будет правильная группа, как мне добавить к ней существующего пользователя?

Заранее спасибо

1 Ответ

3 голосов
/ 04 ноября 2010

Как правило, чтобы добавить пользователя в существующую группу, вам необходимо привязать эту группу и обновить ее свойство member, используя полное имя пользователя:

DirectoryEntry deGroup = new DirectoryEntry("LDAP://CN=Internal,OU=Sharepoint_Groups,DC=Company,DC=local");

string userDN = newUser.Properties["distinguishedName"][0].ToString();

deGroup.Properties["member"].Add(userDN);
deGroup.CommitChanges();

Отличный ресурс длявот что написано в статье CodeProject Как сделать практически все в Active Directory, используя C # - множество полезных примеров кода!

...