![](/img/trans.png)
[英]Get distinguished name from Active Directory of currently logged in user
[英]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.