У нас есть несколько колл-центров, каждый из которых имеет свою собственную группу в Active Directory, которая содержит всех операторов, работающих в этом колл-центре. Там у центра обработки вызовов может быть несколько супервизоров, поэтому я попросил кого-то в нашей службе поддержки настроить активный каталог следующим образом:
Колл-центр Атланты
Тогда:
Колл-центр Атланты - Супервайзеры
А атрибуту managedBy
группы call-центра присваивается группе супервизора.
В настоящее время я должен запросить его, используя полный distinguishedname
группы супервизоров
Я хотел бы просто выполнить запрос на супервизоре, вошедшем в систему, чтобы получить имя группы managedBy
этого супервизора. Любые предложения по лучшему подходу. Я действительно заставил администратора сети разобраться в проблеме сейчас. Я думаю, он знает, что делать, но я уже напечатал это, так что я посмотрю, что вы, ребята, говорите.
Это то, что наш сетевой администратор только что сказал по этому вопросу.
Использование свойства OU в AD не является хорошей практикой для решения таких проблем, как эта. Проблема должна решаться только через группы и пользователей. Подразделения должны использоваться для логической организации объектов в целях управления.
Label1.Text = getCallCenterGroup("CN=******Supervisors,OU=Groups,OU=*******,OU=Locations,DC=******,DC=local");
protected string getCallCenterGroup(string user)
{
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://******");
DirectorySearcher search = new DirectorySearcher(searchRoot);
search.Filter = "(managedBy=" + user + ")";
search.PropertiesToLoad.Add("managedBy");
search.PropertiesToLoad.Add("distinguishedName");
search.PropertiesToLoad.Add("cn");
SearchResultCollection groups = search.FindAll();
foreach (SearchResult sr in groups)
{
return sr.Properties["cn"][0].ToString();
}
return null;
}