c# asp.net vb.net active-directory

c# - ASP.NET Cómo obtener una lista de grupos en Active Directory



vb.net active-directory (2)

Consulte System.DirectoryServices (Una referencia de ASP.NET 2.0):

C # -ejemplo para obtener grupos:

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-example para obtener grupos:

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

¿Cómo puedo obtener una lista completa de grupos en mi Active Directory?


Microsoft .NET Framework proporciona una biblioteca estándar para trabajar con el espacio de nombres Active Directory: System.DirectoryServices en System.DirectoryServices.dll.

Microsoft recomienda utilizar dos clases principales del espacio de nombres System.DirectoryServices: DirectoryEntry y DirectorySearcher . En la mayoría de los casos, es suficiente usar la clase DirectorySearcher solamente.

Puede encontrar algunos ejemplos en este artículo de CodeProject .