前に所属しているすべてのグループを表示する画面をサンプルアプリに追加しました。
これはユーザー、グループ、コンピューターの所属するグループは、プロパティを見ても直接所属しているグループしか表示されないので、間接的に所属しているグループも見れると便利だと考えてたからです。
今回はグループから見て、直接のメンバーだけじゃなく間接的なメンバーも表示する画面をサンプルアプリに追加しました。
画面はツリー表示のみです。
左が Windows アプリで右が Web アプリです。(どれもクリックすると新しいウィンドウで拡大図が表示されます。)
ツリー表示は所属しているすべてのグループを表示する画面と同じで TreeView を使って、ノードの作成はコードで行ってます。Windows アプリは ImageList も使ってます。
呼出し元のグループリスト画面にはボタンを追加し、クリックすると この画面をダイアログ表示するようにしました。
Web アプリの方は JavaScript で表示するようにしたので、directory.js に下記コードを追加しました。
//グループの名前を指定して、すべてのメンバー画面をダイアログ表示します。
function showAllMemberList(groupName) {
var url = "AllMemberList.aspx?name=" + encodeURIComponent(groupName);
showModalDialog(url, window, "dialogWidth: 400px; dialogHeight: 400px; resizable; center;");
}
表示するテキストについては次のようにしました。
ユーザー => 表示用の名前(姓名:表示用の所属パス/アカウント名)
グループ => 表示用の名前(グループのスコープ:表示用の所属パス)
コンピューター => 表示用の名前(OS SP:役割)
外部のセキュリティ プリンシパル => 表示用の名前(名前)
表示用の名前については、外部のセキュリティ プリンシパルは読み取り可能な名前「NT AUTHORITY\○○」 の ○○部分で、それ以外は name 属性の値です。
.NET のコードは別途書きます。
Active Directory 関連 Blog
http://www.pbyk.com/blog/bloglist.html