【问题标题】:Active Directory C# using ManagedBy attribute使用 ManagedBy 属性的 Active Directory C#
【发布时间】:2011-08-08 13:50:50
【问题描述】:

我们有多个呼叫中心,每个呼叫中​​心在 Active Directory 中都有自己的组,其中包含在该呼叫中心工作的所有代理。呼叫中心可能有多个主管,所以我在我们的帮助台找了一个人来设置活动目录,如下所示:

亚特兰大呼叫中心

  • 代理1
  • 代理2
  • 代理3

然后:

亚特兰大呼叫中心 - 主管

  • 主管1
  • 主管2

并且呼叫中心组的managedBy 属性设置为主管的组。

目前我必须使用主管组的完整distinguishedname 来查询它。

我只想对登录的主管运行查询,以获取该主管的组名managedBy。有关更好方法的任何建议。我实际上已经让网络管理员现在正在调查这个问题。我想他知道该怎么做,但我已经输入了这个,所以我会看看你们说什么。

这是我们的网络管理员刚刚在这个问题上所说的。

在 AD 中使用 OU 的属性不是处理此类问题的好习惯。该问题应仅通过组和用户处理。应使用 OU 对对象进行逻辑组织以进行管理。

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;
    }

【问题讨论】:

    标签: active-directory


    【解决方案1】:

    managedBy 是一个链接属性,因此您可以查询它的唯一语法是您要匹配的对象的 DN。不过,我不确定这是问题所在还是我的理解有误。

    在一个单独的线程中,我不太同意您的网络管理员关于不扩展 OU 的看法,但是,这是一个单独的讨论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多