私のアプリケーションの 1 つで、Active Directory にクエリを実行して、特定のユーザーの下にあるすべてのユーザーのリストを取得しています (「直属の部下」を使用しています)。したがって、基本的には、人物の名前が与えられると、AD で検索され、直属の部下が読み取られます。ただし、直属の部下ごとに、ツールは直属の部下の直属の部下をチェックする必要があります。または、より抽象的な: ツールは、人物をツリーのルートとして使用し、ツリー全体をたどってすべての葉 (数百になる場合もあります) の名前を取得します。
さて、これはかなりの回数実行する必要があるため、私の懸念は明らかにパフォーマンスです。私の考えは、それを手動でキャッシュすることです(基本的に、すべての名前を長い文字列に入れてどこかに保存し、1日に1回更新します)。
しかし、おそらく System.DirectoryServices 名前空間の何かを使用して、最初に情報を取得してからキャッシュするよりエレガントな方法があるのではないかと思います。