public IResult Collect(SearchString searchstring) { _logger.Debug($"Collecting"); LDAPSearchString searchString = (LDAPSearchString)searchstring; List <ILDAPObject> ldapObjects = new List <ILDAPObject>(); var results = Searcher.GetResultEntries(searchString).ToList(); foreach (var result in results) { //If we need User if (searchString.ReturnAttributes.Contains("sAMAccountName")) { var user = User.GetUserObject(result); ldapObjects.Add(user); } else { ldapObjects.Add(new LDAPBaseObject { Attributes = ProcessAttributes(result.Attributes), DistinguishedName = result.DistinguishedName }); } } CollectResult = new LDAPResult { LDAPObjects = ldapObjects, Title = searchstring.Title }; _logger.Debug("LDAP Objects Collected"); return(CollectResult); }
public override void DisplayResult(IResult collectResult) { if (collectResult == null) { return; } LDAPResult collectResults = (LDAPResult)collectResult; if (collectResults.LDAPObjects.Count == 0) { return; } foreach (var ldapObject in collectResults.LDAPObjects) { Console.WriteLine(" * {0}", ldapObject.DistinguishedName.ToUpper()); if (ldapObject is User u) { foreach (var attr in u.Properities) { foreach (var value in attr.Value) { Console.WriteLine(" - {0, -30} {1}", attr.Key + ":", value); } } } else if (ldapObject is LDAPBaseObject b) { foreach (var dict in b.Attributes) { foreach (var attr in dict.Value) { Console.WriteLine(" {0, -30} {1}", dict.Key, attr); } //Console.WriteLine(); } } //Console.WriteLine(); } }