2014-01-14 41 views
1

我有一個多域活動目錄環境,需要根據DOMAIN \ username找到一個用戶。在全局編錄中使用DirectorySearcher查找DOMAIN username

下面的代碼的偉大工程尋找通過SID的用戶。

DirectorySearcher directorySearcher = new DirectorySearcher(new DirectoryEntry(
    "GC://" + Forest.GetCurrentForest().Name)); 

directorySearcher.Filter = 
    "(&" + 
     (&(objectCategory=person)(objectClass=user)) + 
     "(objectSid=" + this.SID + "))"; 
var result = directorySearcher.FindOne(); 

但現在我處於所有我擁有的是域\用戶名的情況。

這個過濾器是怎麼回事?

我考慮的一種方法是連接到特定的域而不是全局編錄,然後通過非限定的SAMAccountName進行搜索。但我的問題是我不知道如何從DOMAIN獲取DC = Domain,DC = Org或domain.org。

當我在Active Directory用戶和計算機是,似乎沒有什麼問題由域\用戶名搜索整個目錄。幕後發生了什麼?

回答

2

這是缺少的一塊。

using System.Security.Principal; 

var sid = (SecurityIdentifier)new NTAccount(userName).Translate(
    typeof(SecurityIdentifier)); 
相關問題