В одном из моих приложений я запрашиваю активный каталог, чтобы получить список всех пользователей ниже данного пользователя (используя функцию «Прямые отчеты»). Таким образом, в основном, учитывая имя человека, оно ищется в AD, а затем читаются прямые отчеты. Но затем для каждого прямого отчета инструмент должен проверять прямые отчеты прямых отчетов. Или, более абстрактно: Инструмент будет использовать человека в качестве корня дерева, а затем идти по всему дереву, чтобы получить имена всех листьев (может быть несколько сотен)
Теперь моя проблема, очевидно, в производительности, так как это нужно делать довольно много раз. Моя идея состоит в том, чтобы вручную кэшировать это (по сути, просто поместить все имена в длинную строку, сохранить их где-нибудь и обновлять раз в день).
Но мне просто интересно, есть ли более элегантный способ сначала получить информацию, а затем кэшировать ее, возможно, используя что-то в пространстве имен System.DirectoryServices?