如何使用 PrincipalSearcher 按公用名在 Active Directory 中查找单个用户?

How can I find a single user in Active Directory by common name using PrincipalSearcher?

我正在尝试使用 System.DirectoryServices 查找用户的管理员。所以我使用当前代码来获取管理器。

 string test = string.Empty;
 using(var context = new PrincipalContext(ContextType.Domain))
 {
   using(var user = UserPrincipal.FindByIdentity(context, "user"))
   {                    
     DirectoryEntry de = (DirectoryEntry)user.GetUnderlyingObject();
     test = de.Properties["manager"][0].ToString();
   }
 }

然后测试变量只包含经理的 CN 或通用名称。我需要使用该通用名称来获取经理的实际用户。因为我需要 UserID 和 Email 等东西。我该如何实现?

manager attribute 包含经理帐户的可分辨名称(通用名称只是可分辨名称的 CN= 部分)。

您可以将 UserPrincipal.FindByIdentity() 与该专有名称一起使用,就像您对用户所做的那样:

var manager = UserPrincipal.FindByIdentity(context, test);