C# 如何从员工处获取经理的UserPrincipal对象';用户主体对象

C# 如何从员工处获取经理的UserPrincipal对象';用户主体对象,c#,active-directory,directoryservices,C#,Active Directory,Directoryservices,我有一个Active Directory搜索程序,可以使用UserPrincipal对象获取用户的详细信息。我正在使用System.DirectoryServices和System.DirectoryServices.AccountManagement,它通过上下文访问AD 但是,我还需要将用户的管理器作为一个单独的UserPrincipal对象。最直接的方法是什么 我尝试了以下方法,但不幸的是演员阵容无法发挥作用: DirectoryEntry directoryEntry = (Direct

我有一个Active Directory搜索程序,可以使用
UserPrincipal
对象获取用户的详细信息。我正在使用
System.DirectoryServices
System.DirectoryServices.AccountManagement
,它通过上下文访问AD

但是,我还需要将用户的管理器作为一个单独的
UserPrincipal
对象。最直接的方法是什么

我尝试了以下方法,但不幸的是演员阵容无法发挥作用:

DirectoryEntry directoryEntry = (DirectoryEntry)userPrincipal.GetUnderlyingObject();
UserPrincipal manager = (UserPrincipal)directoryEntry.Properties["manager"][0];
我希望每个UserPrincipal对象中都有一个名为
UsersManager
UserPrincipal
属性,但我找不到这个属性,所以我猜没有这样的东西


谢谢

manager属性将为您提供经理帐户的可分辨名称,它只是一个字符串。因此,您必须使用该DN查找经理的帐户

这可能会起作用(假设您已经有一个
上下文
对象):


这一个不起作用,但这一个起作用了:UserPrincipal manager=UserPrincipal.FindByIdentity(上下文,directoryEntry.Properties[“manager”][0].ToString());所以我接受你的答案,并感谢:)未经测试的代码:)我很高兴它有帮助。我会更新我的答案。
UserPrincipal manager = UserPrincipal.FindByIdentity(context, IdentityType.DistinguishedName, directoryEntry.Properties["manager"][0].ToString());