簡體   English   中英

Active Directory-獲取管理員帳戶(來自專有名稱)

[英]Active Directory - Get Manager account (from Distinguished Name)

我正在嘗試為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();

如您所見,有一個名為manager的屬性被請求並以

CN = 經理姓名 ,OU =員工,OU =英國,OU = CompantUsers,DC = MyDomain,DC = xxx,DC = zzzzz

CN = 管理員名稱是全名,而不是LoginID / SAMAccountName (當我搜索我的AD條目時使用的名稱...因此現在如何找到我的管理員的AD條目

啊……當您知道要問的正確問題時,Google便知道了答案……我不知道CN .....字符串被稱為distinguishedName

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM