diff --git a/src/DigitalData.ActiveDirectory/README.md b/src/DigitalData.ActiveDirectory/README.md index 2f15cc0..b9fe353 100644 --- a/src/DigitalData.ActiveDirectory/README.md +++ b/src/DigitalData.ActiveDirectory/README.md @@ -1,6 +1,6 @@ # DirectorySearchQuery -**`DirectorySearchQuery`** ist ein Abfrageobjekt, das zum Durchführen von Suchvorgängen in Active Directory (AD) verwendet wird. Dieses Objekt ist mit der integrierten **`DirectorySearcher`**-Klasse von .NET verknüpft (gemappt) und stellt die erforderlichen Parameter zum Konfigurieren der Suche bereit. +**`DirectorySearchQuery`** ist ein Abfrageobjekt, das zum Durchführen von Suchvorgängen in Active Directory (AD) verwendet wird. Dieses Objekt ist mit der integrierten **`DirectorySearcher`**-Klasse von .NET verknüpft (gemappt) und stellt die erforderlichen Parameter zum Konfigurieren der Suche bereit. Weitere Informationen finden Sie im entsprechenden [Microsoft-Artikel](https://learn.microsoft.com/de-de/dotnet/api/system.directoryservices.directorysearcher?view=net-8.0). ## Eigenschaften @@ -8,28 +8,29 @@ Die folgenden Eigenschaften werden verwendet, um Ihre AD-Abfrage anzupassen: * **`Filter`** (`string`): Dies ist die LDAP-Filterzeichenfolge, die für die Suche verwendet wird. Beispielsweise sucht `(objectClass=user)` nach allen Benutzerobjekten, während `(&(objectClass=user)(cn=Test*))` nach Benutzern sucht, deren Name mit „Test” beginnt. Weitere Informationen zur Verwendung von Filtern finden Sie in der [LDAP-Filtersyntaxdokumentation von Microsoft](https://learn.microsoft.com/en-us/windows/win32/adsi/search-filter-syntax). * **`Scope`** (`SearchScope`): Gibt an, auf welcher Ebene die Suche durchgeführt werden soll. Es gibt drei verschiedene Werte: -* **`Base`**: Sucht nur nach dem Startobjekt der Suche. -* **`OneLevel`**: Sucht nur nach Objekten, die sich direkt unter dem Startobjekt befinden. - * **`Subtree`** (Standard): Durchsucht den gesamten Unterbaum einschließlich des Startobjekts. + * **`0. Base`**: Sucht nur nach dem Startobjekt der Suche. + * **`1. OneLevel`**: Sucht nur nach Objekten, die sich direkt unter dem Startobjekt befinden. + * **`2. Subtree`** (Standard): Durchsucht den gesamten Unterbaum einschließlich des Startobjekts. * **`SizeLimit`** (`int`): Gibt die maximale Anzahl von Objekten an, die als Ergebnis einer Suche zurückgegeben werden sollen. Der Standardwert ist 5000. Dieser Wert ist wichtig für die Leistungsoptimierung bei der Arbeit mit großen Datensätzen. -* **`Property`** (`string[]`): Eine Liste der Attribute, die in den Suchergebnissen zurückgegeben werden sollen. Beispielsweise gibt `new string[] { „cn“, ‚sAMAccountName‘, „mail“ }` nur die angegebenen Attribute zurück. Durch die Auswahl nur der benötigten Attribute werden der Netzwerkverkehr und der Speicherverbrauch reduziert und die Leistung verbessert. +* **`Property`** (`string[]`): Eine Liste der Attribute, die in den Suchergebnissen zurückgegeben werden sollen. Beispielsweise gibt `["cn", "sAMAccountName", "mail" ]` nur die angegebenen Attribute zurück. Durch die Auswahl nur der benötigten Attribute werden der Netzwerkverkehr und der Speicherverbrauch reduziert und die Leistung verbessert. * **`SearchRoot`** (`Root`): Gibt den Active Directory-Pfad an, an dem die Suche beginnen soll. Dies entspricht der Eigenschaft **`SearchRoot`** des Objekts **`DirectorySearcher`**. Optional können Benutzername und Passwort als spezielle Anmeldedaten angegeben werden. ## Anwendungsbeispiel -Das folgende Beispiel zeigt, wie ein `DirectorySearchQuery`-Objekt erstellt und dem **`DirectorySearcher`**-Objekt zugeordnet wird: - -```csharp -// Beispiel für die Erstellung einer DirectorySearchQuery -var query = new DirectorySearchQuery( - Filter: „(&(objectClass=user)(sAMAccountName=john.doe))“, - Scope: SearchScope. Subtree, - Property: new[] { „cn“, ‚mail‘, „description“ }) +Das folgende Beispiel zeigt, wie ein `DirectorySearchQuery`-Objekt erstellt: +```json { - SearchRoot = new DirectorySearchQuery.Root(„LDAP://OU=Users,DC=example,DC=com“) -}; + "Filter": "(&(objectClass=user)(sAMAccountName=john.doe))", + "Scope": SearchScope. Subtree, + "Property": [ "cn", "mail", "description" ], + "SearchRoot": { + "path": "LDAP://OU=Users,DC=example,DC=com", + "username": "MustermannM", + "password": "Must3rM@nn!" + } +} // Diese Abfrage wird über einen Mapper in ein DirectorySearcher-Objekt umgewandelt using DirectorySearcher searcher = _mapper.Map(query);