Книга: C# для профессионалов. Том II

Поиск объектов User

Поиск объектов User

Обработчик для кнопки поиска вызывает вспомогательный метод FillResult():

private void buttonSearch_Click(object render, System.EventArgs e) {
 try {
  FillResult();
 } catch (Exception ex) {
  MessageBox.Show("Check your input: " + ex.Message)
 }
}

В методе FillResult() выполняется обычный поиск в полном домене активного каталога, как мы видели раньше. SearchScope задается как Subtree, Filter для строки мы получаем из TextBox, а свойства, которые должны быть загружены в кэш, задаются значениями, которые пользователь выбирает в окне списка

protected void FillResult() {
 using (DirectoryEntry root = new DirectoryEntry()) {
  root.Username = username;
  root.Password = password;
  root.Path = "LDAP://" + hostname + defaultNamingContext;
  using (DirectorySearcher searcher = new DirectorySearcher()) {
   seacher.SearchRoot = root;
   searcher.SearchScope = SearchScope.Subtree;
   searcher.Filter = textboxfilter.Text;
   searcher.PropertiesToLoad.AddRange(GetProperties());
   SearchResultCollection results = searcher.FindbAll();
   StringBuilder summary = new StringBuilder();
   foreach (SearchResult result in results) {
    foreach (string propName in result.Properties.PropertyNames) {
     foreach (string s in result.Properties[propName]) {
      summary.Append(" " + propName + ": " + s + "rn");
     }
    }
    summary.Append("rn");
   }
   textBoxResults.Text = summary.ToString();
  }
 }
}

Запустив приложение, мы получим список всех объектов, которые прошли через фильтр:


Оглавление книги


Генерация: 1.454. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз