2013-05-13 54 views
0

我正在製作一個應用程序的用戶管理模塊,該模塊基本上根據用戶的域登錄詳細信息對用戶憑證進行身份驗證。身份驗證不是問題,問題是我需要獲取特定用戶的經理。在asp.net中訪問Active Directory以獲取用戶管理器

我使用下面的方法來獲取用戶的「經理」屬性:

DirectoryEntry de = new DirectoryEntry(path, user, pass, AuthenticationTypes.Secure); 
DirectorySearcher ds = new DirectorySearcher(); 
ds.SearchRoot = new DirectoryEntry("LDAP://xyzDomain", "UserName", "pwd"); 
ds.Filter = "(|(&(objectCategory=person)(objectClass=user)(mailnickname=*domainalias*)))"; 
//ds.PropertyNamesOnly = true; 
ds.PropertiesToLoad.Add("manager"); 

List<string> users = new List<string>(); 
string s = "undefined"; 

foreach (SearchResult sr in ds.FindAll()) 
{ 
    DirectoryEntry dee = sr.GetDirectoryEntry(); 
    s = (string)dee.Properties[""].Value ?? "<undefined>";      
    users.Add(s); 
} 

這將返回我這樣的經理細節:

CN=First LastName,OU=Managers,OU=Engineering,OU=Central,OU=Something,DC=XYZ,DC=XYZ,DC=XYZRE 

我做的是使用字符串操作來提取CN,然後在CN上運行查詢以查找管理器的詳細信息。然而問題是這裏的CN並不是唯一的。可能有兩個或更多同名的人。我基本需要的是一種方法,它將用戶的管理器ALIAS(不是CN或任何東西)返回給我。

請任何幫助,這將不勝感激。接受建議。 非常感謝

回答

相關問題