public IActionResult SearchPhoneBookItems(string term = "") { var data = new List <PhoneBookItem>(); var filter = "(&(objectCategory=person)(objectclass=user)"; if (!string.IsNullOrEmpty(term)) { filter += $"(name=*{term}*)"; } filter += ")"; var entry = Domain.GetCurrentDomain().GetDirectoryEntry(); var searcher = new DirectorySearcher(entry, filter); searcher.PropertiesToLoad.Add("name"); searcher.PropertiesToLoad.Add("mobile"); searcher.PropertiesToLoad.Add("mail"); searcher.PropertiesToLoad.Add("telephonenumber"); var result = searcher.FindAll(); foreach (SearchResult searchResult in result) { var user = new PhoneBookItem(searchResult); if (user.HasContactsInformation()) { data.Add(user); } } data = data.OrderBy(c => c.Name).ToList(); return(Json(data)); }