ユーザーの所属するグループについて、ネストして間接的に所属しているグループも表示したいなぁと以前から考えていたので、サンプルアプリに追加しました。
所属するグループはドメイン内で直接所属しているグループしか表示されないので、間接的に所属しているグループも確認したい場合は 1つ 1つ辿っていかないといけないんです。
ユーザー以外にも、グループとコンピューターにも所属するグループがあるので、対象はこの 3種類のオブジェクトとしました。
画面はツリー表示とリスト表示をできるようにしてみました。
左が Windows アプリで右が Web アプリです。(どれもクリックすると新しいウィンドウで拡大図が表示されます。)
ツリー表示
リスト表示
ツリー表示は組織単位リスト画面(Win, Web)同じで、TreeView と ImageList を使って、ノードの作成はコードで行ってます。
リスト表示は、重複しないようにしたグループをコレクション(Windows アプリ)または DataTable(Web アプリ)にして ListBox にバインドしてます。
呼出し元の各画面にはボタンを追加し、クリックすると この画面をダイアログ表示するようにしました。
Web アプリの方は JavaScript で表示するようにしたので、directory.js を作成して下記コードを追加しました。
//名前と Directory オブジェクトの種類を指定して、所属している全グループ画面をダイアログ表示します。
function showInRoleGroupList(name, category) {
var url = "InRoleGroupList.aspx?name=" + encodeURIComponent(name) + "&category=" + category;
showModalDialog(url, window, "dialogWidth: 400px; dialogHeight: 400px; resizable; center;");
}
.NET のコードは別途書きます。
Active Directory 関連 Blog
http://www.pbyk.com/blog/bloglist.html