Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

searcher.PropertiesToLoad.Add("name");

searcher.PropertiesToLoad.Add("description");

searcher. PropertiesToLoad.Add("givenName");

searcher.PropertiesToLoad.Add("wWWHomePage");

Мы готовы начать поиск. Однако, результат необходимо отсортировать.

DirectorySearcher
имеет свойство
Sort
, где можно задать
SortOption
. Первый аргумент конструктора
SortOption
определяет свойство, по которому будет проводиться сортировка, второй аргумент определяет направление сортировки. Перечисление
SortDirection
имеет значения
Ascending
и
Descending
.

Чтобы начать поиск, можно использовать метод

FindOne
для нахождения первого объекта или
FindAll
, чтобы найти все объекты.
FindOne
вернет простой
SearchResult
,
FindAll
вернет
SearchResultCollection
. Мы хотим получить всех авторов, поэтому используем
FindAll
:

searcher.Sort = new SortOption("givenName", SortDirection.Ascending);

SearchResultCollection Results = searcher.FindAll;

С помощью цикла

foreach
мы получаем доступ ко всем
SearchResult
в
SearchResultCollection
.
SearchResult
представляет один объект в кэше поиска. Свойство
Properties
возвращает
ResultPropertyCollection
, где мы получаем доступ ко всем свойствам и значениям по имени свойства и по индексу.

SearchResultCollection results = Searcher.FindAll;

 foreach (SearchResult result in results) {

ResutPropertyCollection props = result.Properties;

foreach (string propName in props.PropertyNames) {

Console.Write(propName + ": ");

Console.WriteLine(props[propName][0]);

}

Console.WriteLine;

 }

}

Если необходимо получить весь объект после поиска, то это также возможна.

SearchResult
имеет метод
GetDirectoryEntry
, который возвращает соответствующую запись
DirectoryEntry
найденного объекта.

Результирующий вывод показывает начале списка всех авторов книги Professional C# с выбранными свойствами

Поиск объектов пользователей

Последнее приложение, которое будет создано в этой главе, это приложение Windows Forms. С его помощью можно найти все объекты пользователей домена с динамически определяемой строкой фильтра. Можно также задать свойства объектов пользователей, которые должны выводиться.

Интерфейс пользователя

Интерфейс пользователя выводит нумерованные шаги, помогая использовать приложение.

1. На первом шаге можно ввести имя пользователя, пароль и контроллер домена. Вся эта информация является необязательной. Если контроллер домена не вводится, то соединение работает со связыванием без сервера. Если отсутствует имя пользователя, то используется контекст безопасности текущего пользователя.

2. С помощью кнопки все имена свойств объекта

User
могут загружаться динамически в окно списка
ListBoxProperties
.

3. После загрузки имен свойств, можно выбрать свойства, которые должны выводиться. Режим

SelectionMode
окна списка задач как
MultiSimple
.

4. Можно ввести фильтр для ограничения поиска. Значение по умолчанию, которое задается в этом диалоговом окне, ищет все объекты пользователей: (

objectClass=user
).

5. Теперь можно начать поиск.

Получение именующего контекста схемы

Это приложение имеет только два метода обработки событий: первый метод — обработчик для кнопки загрузки свойств и второй — для запуска поиска в домене. В первой части мы динамически считываем свойства класса

User
из схемы для вывода его в интерфейсе пользователя.

В методе-обработчике

buttonLoadProperties_Click
с помощью метода
SetLogonInformation
имя пользователя, пароль и имя хоста считываются во время диалога и сохраняются в членах класса. Затем метод
SetNamingContext
задает имя LDAP схемы и имя LDAP используемого по умолчанию контекста. Имя LDAP этой схемы используется в вызове
SetUserProperties
для задания свойств в окне списка:

  • Читать дальше
  • 1
  • ...
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: