Не может указать, какие атрибуты возвращать при запросе магазина LDAP
-
29-09-2019 - |
Вопрос
Я использую тип dieforyservices.protocols.searchRequest, чтобы сделать запрос против магазина Opends для получения некоторых записей. Я хочу иметь возможность контролировать, какие атрибуты возвращаются для записей в ответе, и подумал, что свойство «атрибуты» сделает это. Однако у этого свойства нет сеттера, поэтому я не могу сделать что-то вроде этого:-
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;
Может ли кто -нибудь направить меня к тому, что я должен сделать, чтобы отфильтровать запрос, чтобы вернуть записи только с указанными атрибутами, а не всеми из них.
Решение
По иронии судьбы это сработало:-
SearchRequest searchRequest = new SearchRequest(hubTable, ldapFilter, SearchScope.Subtree, new[] { "AppId", "File" });
Другие советы
Есть ли причина, по которой вы используете 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, чтобы получить все результаты.
Я подозреваю, что вам понадобится другой фильтр.
Я уверен, что ты ldapfilter
имеет несколько критериев. Вам нужно, и это (с &) включить (&(Id=*)(File=*))
Чтобы получить результаты, которые вы ищете.