我正在尝试获取活动目录中用户帐户的经理帐户。
这是我的代码..
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
DirectoryContext directoryContext = new DirectoryContext(DirectoryContextType.Domain, "MyDomain");
Domain domain = Domain.GetDomain(directoryContext);
// Find MY directory Entry
DirectorySearcher search = new DirectorySearcher(domain.GetDirectoryEntry())
{
Filter = String.Format("(SAMAccountName={0})", "<my user id>")
};
search.PropertiesToLoad.Add("displayName");
search.PropertiesToLoad.Add("mail");
search.PropertiesToLoad.Add("manager");
DirectoryEntry userAccount = search.FindOne()?.GetDirectoryEntry();
正如您所看到的,有一个名为 manager 的属性被请求并返回
CN = 经理名称,OU =员工,OU =英国,OU = CompantUsers,DC = MyDomain,DC = xxx,DC = zzzzz
CN = 经理名称 是全名,而不是LoginID / SAMAccountName (在我搜索MY AD条目时使用)。 ..那么我现在如何找到我的经理的AD条目
答案 0 :(得分:0)
啊......当你知道要问的正确问题时谷歌知道答案......我不知道 CN ..... 字符串被称为 的distinguishedName 强>
if (userAccount.Properties["manager"].Value != null)
{
DirectorySearcher search2 = new DirectorySearcher(domain.GetDirectoryEntry())
{
Filter = string.Format("(distinguishedName={0})", userAccount.Properties["manager"].Value)
};
search2.PropertiesToLoad.Add("displayName");
search2.PropertiesToLoad.Add("mail");
search2.PropertiesToLoad.Add("manager");
DirectoryEntry mgrAcc = search2.FindOne()?.GetDirectoryEntry();
}