Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Active Directory-获取管理器帐户(来自可分辨名称)_C#_Active Directory - Fatal编程技术网

C# 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

我正在尝试获取active directory中用户帐户的经理帐户

这是我的密码

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();
}