【发布时间】: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