2008-11-27 14 views

cevap

33

Kontrol dışarı System.DirectoryServices (An ASP.NET 2.0 referansı):

C# -example grupları almak için:

using System.DirectoryServices; 

public class test 
{ 

    private void main() 
    { 
     foreach (string @group in GetGroups()) 
     { 
      Debug.Print(@group); 
     } 
    } 

    public List<string> GetGroups() 
    { 
     DirectoryEntry objADAM = default(DirectoryEntry); 
     // Binding object. 
     DirectoryEntry objGroupEntry = default(DirectoryEntry); 
     // Group Results. 
     DirectorySearcher objSearchADAM = default(DirectorySearcher); 
     // Search object. 
     SearchResultCollection objSearchResults = default(SearchResultCollection); 
     // Results collection. 
     string strPath = null; 
     // Binding path. 
     List<string> result = new List<string>(); 

     // Construct the binding string. 
     strPath = "LDAP://stefanserver.stefannet.local"; 
     //Change to your ADserver 

     // Get the AD LDS object. 
     try 
     { 
      objADAM = new DirectoryEntry(strPath); 
      objADAM.RefreshCache(); 
     } 
     catch (Exception e) 
     { 
      throw e; 
     } 

     // Get search object, specify filter and scope, 
     // perform search. 
     try 
     { 
      objSearchADAM = new DirectorySearcher(objADAM); 
      objSearchADAM.Filter = "(&(objectClass=group))"; 
      objSearchADAM.SearchScope = SearchScope.Subtree; 
      objSearchResults = objSearchADAM.FindAll(); 
     } 
     catch (Exception e) 
     { 
      throw e; 
     } 

     // Enumerate groups 
     try 
     { 
      if (objSearchResults.Count != 0) 
      { 
       foreach (SearchResult objResult in objSearchResults) 
       { 
        objGroupEntry = objResult.GetDirectoryEntry(); 
        result.Add(objGroupEntry.Name); 
       } 
      } 
      else 
      { 
       throw new Exception("No groups found"); 
      } 
     } 
     catch (Exception e) 
     { 
      throw new Exception(e.Message); 
     } 

     return result; 
    } 

} 

VB-örnek almak için gruplar:

Imports System.DirectoryServices 

Public Class Form1 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    For Each group As String In GetGroups() 
     Debug.Print(group) 
    Next 
End Sub 

Public Function GetGroups() As List(Of String) 
    Dim objADAM As DirectoryEntry     ' Binding object. 
    Dim objGroupEntry As DirectoryEntry    ' Group Results. 
    Dim objSearchADAM As DirectorySearcher   ' Search object. 
    Dim objSearchResults As SearchResultCollection ' Results collection. 
    Dim strPath As String       ' Binding path. 
    Dim result As New List(Of String) 

    ' Construct the binding string.   
    strPath = "LDAP://stefanserver.stefannet.local" 'Change to your ADserver 

    ' Get the AD LDS object. 
    Try 
     objADAM = New DirectoryEntry(strPath) 
     objADAM.RefreshCache() 
    Catch e As Exception 
     Throw e 
    End Try 

    ' Get search object, specify filter and scope, 
    ' perform search. 
    Try 
     objSearchADAM = New DirectorySearcher(objADAM) 
     objSearchADAM.Filter = "(&(objectClass=group))" 
     objSearchADAM.SearchScope = SearchScope.Subtree 
     objSearchResults = objSearchADAM.FindAll() 
    Catch e As Exception 
     Throw e 
    End Try 

    ' Enumerate groups 
    Try 
     If objSearchResults.Count <> 0 Then 
      Dim objResult As SearchResult 
      For Each objResult In objSearchResults 
       objGroupEntry = objResult.GetDirectoryEntry 
       result.Add(objGroupEntry.Name) 
      Next objResult 
     Else 
      Throw New Exception("No groups found") 
     End If 
    Catch e As Exception 
     Throw New Exception(e.Message) 
    End Try 

    Return result 
End Function 
End Class 
+0

harika şeyler, benim için bir çekicilik gibi çalıştı! –

+0

Teşekkürler Stefan harika mesaj için ... web uygulamasında vb. Kodlarını kullanmayı denedim ama işe yaramıyor gibiyim ... biraz ışık tutabilir misiniz? mcuh takdir… _____ –

+0

@mo, * AD sunucunuz ile eşleşecek yolu/URL'yi değiştirdiniz mi? Benim örneğimde gerçek bir AD sunucusu değil. – Stefan

1

Microsoft .NET Framework, Active Directory ile çalışmak için standart bir kitaplık sağlar: System.DirectoryServices namespace System.DirectoryServices.dll dosyasında. DirectoryEntry ve DirectorySearcher:

Microsoft iki ana System.DirectoryServices ad sınıfları kullanarak önerir. Çoğu durumda, yalnızca DirectorySearcher sınıfını kullanmak yeterlidir.

Bu CodeProject article ürünündeki bazı örnekleri bulabilirsiniz.

İlgili konular