Impossibile specificare quali attributi di ritorno quando l'interrogazione di un archivio LDAP
-
29-09-2019 - |
Domanda
Sto usando il tipo DirectoryServices.Protocols.SearchRequest di effettuare una richiesta contro un OpenDS negozio per recuperare alcune voci. Voglio essere in grado di controllo che gli attributi vengono restituiti per le voci nella risposta e ho pensato la proprietà "Attributi" avrebbe fatto. Tuttavia che la proprietà non dispone di un setter, quindi non posso fare qualcosa di simile: -
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;
Qualcuno mi può diretto a quello che dovrei fare per filtrare la richiesta alle voci di ritorno solo con gli attributi specificati e non tutti di loro.
Soluzione
Per ironia della sorte questo ha funzionato: -
SearchRequest searchRequest = new SearchRequest(hubTable, ldapFilter, SearchScope.Subtree, new[] { "AppId", "File" });
Altri suggerimenti
C'è un motivo per cui si sta utilizzando SearchResuest? In ogni caso è possibile utilizzare la classe DirectorySearcher http: // MSDN. microsoft.com/en-us/library/system.directoryservices.directorysearcher.aspx alla ricerca voci. Ecco un esempio di guardare in alto 1 http: // MSDN. microsoft.com/en-us/library/system.directoryservices.searchresult.aspx. Utilizzare il metodo FindAll per ottenere tutti i risultati.
Ho il sospetto che avrebbe bisogno di un filtro diverso.
Sono sicuro che la vostra ldapfilter
ha alcuni criteri. Si avrebbe bisogno di e IT (con &) per includere (&(Id=*)(File=*))
al fine di ottenere i risultati che stai cercando.