2012-11-08 110 views
1

我想從使用LDAP的目錄服務器中顯示與用戶提供的名稱匹配的所有名稱,並將其綁定到網格視圖。我能夠實現這個任務,而不僅僅是一個名字,而是獲得像LDAP這樣的其他屬性:// CN = Neha Shetty,OU = Users,OU = MUM,OU = Mumbai,OU = India,OU = APAC,OU = bunt, DC = XXX,DC = COM。但我只是想要Neha Shetty。這裏是我的代碼從asp.net中獲取ldap的名稱c#

DirectoryEntry de = new DirectoryEntry("ADConnection"); 

DirectorySearcher deSearch = new DirectorySearcher(de); 

//set the search filter  
deSearch.SearchRoot = de; 
String UserName = txt_To.Text; 
// deSearch.Filter = "(&(objectCategory=user)(GivenName=*" + UserName + "*))"; 
deSearch = new DirectorySearcher("(&(objectCategory=user)(Name=*" + UserName + "*))"); 
//deSearch.SearchScope = SearchScope.Subtree; 
string[] arrPropertiesToLoad = { "Surname" }; 
deSearch.PropertiesToLoad.AddRange(arrPropertiesToLoad); 

// SearchResultCollection sResultColl = deSearch.FindAll(); 
SearchResultCollection sResultColl; 
sResultColl = deSearch.FindAll(); 

Gridview1.DataSource = sResultColl; 
Gridview1.DataBind(); 
+0

我猜SearchResult到GridView的默認綁定將顯示條目的可分辨名稱。你應該從每個SearchResult中提取Surname屬性值(類似於sResultColl.Cast ()。Select(sr => GetSurnameAttributValue).ToList();)並將結果字符串集合綁定到GridView。 – jbl

回答

1
LDAP://CN=Neha Shetty,OU=Users,OU=MUM,OU=Mumbai,OU=India,OU=APAC,OU=bunt,DC=xxx,DC=com 

是條目的專有名稱,是總是在返回至少一個條目的搜索結果返回。專有名稱用作主鍵用於目錄中的條目。

目錄不具有性質,目錄具有屬性其根據對象類條目分組;屬性是單值屬性可能是多值的。 LDAP客戶端必須指定哪些用戶屬性應作爲搜索請求的參數之一返回。

+0

有沒有辦法做到這一點? – user1665707

+0

沒辦法做什麼?如果LDAP客戶端只需要該名稱,請將屬性類型指定爲字符串或OID作爲請求的屬性之一。 'commonName'或'cn'屬性(在本例中也是RDN)似乎包含全名。 –

+0

你能舉個例子嗎?它對我不起作用 – user1665707