Active Directory C # с использованием атрибута ManagedBy - PullRequest
0 голосов
/ 08 августа 2011

У нас есть несколько колл-центров, каждый из которых имеет свою собственную группу в Active Directory, которая содержит всех операторов, работающих в этом колл-центре. Там у центра обработки вызовов может быть несколько супервизоров, поэтому я попросил кого-то в нашей службе поддержки настроить активный каталог следующим образом:

Колл-центр Атланты

  • Agent1
  • agent2
  • Agent3

Тогда:

Колл-центр Атланты - Супервайзеры

  • Supervisor1
  • Supervisor2

А атрибуту 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;
    }

1 Ответ

0 голосов
/ 12 августа 2011

managedBy является связанным атрибутом, поэтому единственный синтаксис, с которым вы можете запросить его, - это DN объекта, с которым вы хотите сопоставить.Я не уверен, что это был вопрос или же я неправильно понимаю.

В отдельном потоке я не совсем согласен с вашим сетевым администратором относительно того, чтобы не расширять OU, но это отдельноеобсуждение.

...