次の方法で共有


ユーザー メンバシップの列挙

ここでは、Windows フォームを使用してユーザー メンバシップを列挙する方法について説明し、コード例を示します。

Windows フォームを作成し、ユーザー メンバシップを表示するには

  1. Visual Studio を開いて、[新しいプロジェクト] をクリックします。

  2. [プロジェクトの種類] ペインの [Visual C#] または [Visual Basic] をクリックし、[テンプレート] ペインの [Windows アプリケーション] をクリックします。

  3. 新しいプロジェクトの名前を指定して [OK] をクリックします。

  4. [プロジェクト] をクリックして [参照の追加] をクリックし、[.NET] タブに表示された一覧から [System.DirectoryServices] をクリックします。

  5. フォーム デザイン ページで、テキスト ボックスを [ツールボックス] からフォームにドラッグし、書式設定します。これは、ユーザーがバインドするユーザー名を追加する場所です。

  6. ラベルを [ツールボックス] からフォームにドラッグし、Text プロパティを "Enter Name:" と読めるように変更します。

  7. ボタンを [ツールボックス] からフォームにドラッグし、Text プロパティを "Find Groups" と読めるように変更します。

  8. [ツールボックス] からリスト ボックスをフォームにドラッグします。結果が、フォームに表示されます。

  9. フォームをダブルクリックしてコード ページに移動します。

  10. C# のサンプルを構築する場合は、"using System.DirectoryServices;" ステートメントを using ステートメント リストの最後に追加します。Visual Basic のサンプルを構築する場合は、"Imports System.DirectoryServices" ステートメントを Imports ステートメント リストの最後に追加します。

  11. この手順の後にあるコード例をソース ファイルに追加します。

  12. アプリケーションをコンパイルして実行します。

次の例は、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)
{
}

関連項目

リファレンス

System.DirectoryServices

概念

ユーザー管理

Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation. All rights reserved.