所以我可以得到 使用以下方法显示名称,但我无法在AD中找到该结果的物理定义。旁注是这种方法返回所有匹配而不仅仅是用户,这可能是问题的一部分,但我不知道如何将搜索优化为仅用户。
try
{
using (HostingEnvironment.Impersonate())
{
using (var context = new PrincipalContext(ContextType.Domain, "********"))
{
UserPrincipal qbeUser = new UserPrincipal(context);
qbeUser.GivenName = search.letters;
using (var searcher = new PrincipalSearcher(qbeUser))
{
foreach (var result in searcher.FindAll())
{
list.Add(result.Name);
}
}
}
}
}
catch(Exception e)
{
return e.ToString();
}
答案 0 :(得分:1)
基于Per Noalt's answer的代码。您需要获得基础类型,如下所示:
var directoryEntry = result.GetUnderlyingObject() as DirectoryEntry;
directoryEntry.Properties["PhysicalDeliveryOfficeName"].Value
警告:上面的代码不会验证强制转换,也不会验证对象上的属性,也不会进行空值检查。