2012-11-08 69 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