无法指定查询LDAP存储时要返回的属性

时间:2010-10-12 23:06:22

标签: .net ldap directoryservices opends

我使用DirectoryServices.Protocols.SearchRequest类型对OpenDS商店发出请求以检索某些条目。我希望能够控制为响应中的条目返回哪些属性,并认为“Attributes”属性可以执行此操作。但是这个属性没有setter所以我不能做这样的事情: -

SearchRequest searchRequest = new SearchRequest
                                            {
                                                DistinguishedName = hubTable,
                                                Filter = ldapFilter,
                                                Scope = SearchScope.Subtree,                                                
                                                Attributes = new StringCollection{"Id", "File"}
                                            };
            //run the query and get the results
            SearchResponse results = connection.SendRequest(searchRequest) as SearchResponse;

任何人都可以指导我做我应该做的事情来过滤请求只返回具有指定属性的条目而不是所有条目。

3 个答案:

答案 0 :(得分:1)

具有讽刺意味的是: -

SearchRequest searchRequest = new SearchRequest(hubTable, ldapFilter, SearchScope.Subtree, new[] { "AppId", "File" });

答案 1 :(得分:0)

你有没有理由使用SearchResuest?在任何情况下,您都可以使用DirectorySearcher类http://msdn.microsoft.com/en-us/library/system.directoryservices.directorysearcher.aspx来查找条目。 以下是查找1个结果http://msdn.microsoft.com/en-us/library/system.directoryservices.searchresult.aspx的示例。使用FindAll方法获取所有结果。

答案 2 :(得分:0)

我怀疑你需要一个不同的过滤器。

我确信您的ldapfilter有一些标准。你需要AND它(带&)来包含(&(Id=*)(File=*))才能获得你想要的结果。