ユーザー メンバシップの列挙
ここでは、Windows フォームを使用してユーザー メンバシップを列挙する方法について説明し、コード例を示します。
Windows フォームを作成し、ユーザー メンバシップを表示するには
Visual Studio を開いて、[新しいプロジェクト] をクリックします。
[プロジェクトの種類] ペインの [Visual C#] または [Visual Basic] をクリックし、[テンプレート] ペインの [Windows アプリケーション] をクリックします。
新しいプロジェクトの名前を指定して [OK] をクリックします。
[プロジェクト] をクリックして [参照の追加] をクリックし、[.NET] タブに表示された一覧から [System.DirectoryServices] をクリックします。
フォーム デザイン ページで、テキスト ボックスを [ツールボックス] からフォームにドラッグし、書式設定します。これは、ユーザーがバインドするユーザー名を追加する場所です。
ラベルを [ツールボックス] からフォームにドラッグし、Text プロパティを "Enter Name:" と読めるように変更します。
ボタンを [ツールボックス] からフォームにドラッグし、Text プロパティを "Find Groups" と読めるように変更します。
[ツールボックス] からリスト ボックスをフォームにドラッグします。結果が、フォームに表示されます。
フォームをダブルクリックしてコード ページに移動します。
C# のサンプルを構築する場合は、"using System.DirectoryServices;" ステートメントを using ステートメント リストの最後に追加します。Visual Basic のサンプルを構築する場合は、"Imports System.DirectoryServices" ステートメントを Imports ステートメント リストの最後に追加します。
この手順の後にあるコード例をソース ファイルに追加します。
アプリケーションをコンパイルして実行します。
次の例は、Windows フォームを使用してユーザー メンバシップを列挙する方法を示しています。
Shared Sub Main()
Application.Run(New Form1())
End Sub 'Main
Private Sub label1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub 'label1_Click
Private Sub textBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub 'textBox1_TextChanged
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strUserADsPath As String = "LDAP://fabrikam/cn=" + textBox1.Text + ",cn=users,dc=fabrikam,dc=com"
Dim oUser As DirectoryEntry
oUser = New DirectoryEntry(strUserADsPath)
listBox1.Items.Add("Groups to which {0} belongs:" + oUser.Name)
' Invoke IADsUser::Groups method.
Dim groups As Object = oUser.Invoke("Groups")
Dim group As Object
For Each group In CType(groups, IEnumerable)
' Get the Directory Entry.
Dim groupEntry As New DirectoryEntry(group)
listBox1.Items.Add(groupEntry.Name)
Next group
End Sub 'button1_Click
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub 'Form1_Load
static void Main()
{
Application.Run(new Form1());
}
private void label1_Click(object sender, System.EventArgs e)
{
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
}
private void button1_Click(object sender, System.EventArgs e)
{
string strUserADsPath = "LDAP://fabrikam/cn=" +textBox1.Text +",cn=users,dc=fabrikam,dc=com";
DirectoryEntry oUser;
oUser = new DirectoryEntry(strUserADsPath);
listBox1.Items.Add("Groups to which {0} belongs:"+ oUser.Name);
// Invoke IADsUser::Groups method.
object groups = oUser.Invoke("Groups");
foreach ( object group in (IEnumerable)groups)
{
// Get the Directory Entry.
DirectoryEntry groupEntry = new DirectoryEntry(group);
listBox1.Items.Add(groupEntry.Name);
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
}
関連項目
リファレンス
概念
Send comments about this topic to Microsoft.
Copyright © 2007 by Microsoft Corporation. All rights reserved.