C# Active Directory-获取管理器帐户(来自可分辨名称)
我正在尝试获取active directory中用户帐户的经理帐户 这是我的密码C# Active Directory-获取管理器帐户(来自可分辨名称),c#,active-directory,C#,Active Directory,我正在尝试获取active directory中用户帐户的经理帐户 这是我的密码 using System.DirectoryServices; using System.DirectoryServices.ActiveDirectory; DirectoryContext directoryContext = new DirectoryContext(DirectoryContextType.Domain, "MyDomain"); Domain domain = Domain.GetD
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();
使用System.DirectoryServices;
使用System.DirectoryServices.ActiveDirectory;
DirectoryContext DirectoryContext=新的DirectoryContext(DirectoryContextType.Domain,“MyDomain”);
Domain Domain=Domain.GetDomain(directoryContext);
//查找我的目录条目
DirectorySearcher search=新的DirectorySearcher(domain.GetDirectoryEntry())
{
Filter=String.Format(((SAMAccountName={0})”,“”)
};
search.PropertiesToLoad.Add(“displayName”);
search.PropertiesToLoad.Add(“邮件”);
search.PropertiesToLoad.Add(“管理器”);
DirectoryEntry用户帐户=search.FindOne()?.GetDirectoryEntry();
如您所见,有一个名为manager的属性被请求并返回为
CN=经理姓名,OU=员工,OU=英国,OU=公司,DC=MyDomain,DC=xxx,DC=ZZZZ
CN=管理器名称是全名,而不是LoginID/SAMAccountName(当我搜索我的广告条目时使用的…,那么我现在如何才能找到我经理的广告条目啊哈…当你知道正确的问题时,谷歌知道答案…我不知道CN…字符串被称为区分名称
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();
}