/// <summary> /// Stub for now /// </summary> /// <param name="dn"></param> /// <param name="scope"></param> /// <param name="aliasing"></param> /// <param name="filter"></param> /// <param name="attributes"></param> /// <param name="token"></param> /// <returns></returns> public async Task <LDAPResult> TrySearch(string dn, LDAPScope scope, LDAPAliasDereferencing aliasing, LDAPFilter filter, string[] attributes, CancellationToken token) { _log.LogInformation("Searching for {0}", dn); var op = new SearchRequest { DistinguishedName = dn, Scope = scope, Aliasing = aliasing, Filter = filter, Attributes = attributes }; var objList = new List <LDAPObject>(); var result = new LDAPResult { Objects = objList, IsStreaming = false, }; foreach (var msg in await _connection.TryQueueOperation(op, token)) { _log.LogInformation("Received {0}", msg.Operation); switch (msg.Operation) { case ProtocolOp.SEARCH_RESPONSE: var sResponse = msg as SearchResponse; _log.LogInformation("Found {0}", sResponse.DistinguishedName); if (!string.IsNullOrWhiteSpace(sResponse.DistinguishedName)) { objList.Add(new LDAPObject { DistinguishedName = sResponse.DistinguishedName, Attributes = new List <LDAPAttribute>(sResponse.Attributes) }); } break; case ProtocolOp.SEARCH_RESULT: var sResult = msg as SearchResult; result.ResultCode = (LDAPResultCode)sResult.ResultCode; result.WasSuccessful = sResult.ResultCode == 0; break; } } return(result); }
internal static extern int ldap_search_s([In] ConnectionHandle ldapHandle, string dn, LDAPScope scope, string filter, string[] attributes, bool attributeOnly, out IntPtr result);
/// <summary> /// Stub for now /// </summary> /// <param name="dn"></param> /// <param name="scope"></param> /// <param name="aliasing"></param> /// <param name="filter"></param> /// <param name="token"></param> /// <returns></returns> public async Task <LDAPResult> TrySearch(string dn, LDAPScope scope, LDAPAliasDereferencing aliasing, LDAPFilter filter, CancellationToken token) => await TrySearch(dn, scope, aliasing, filter, null, token);