TestimoX

API Reference

Class

DistinguishedNameHelper

Namespace ADPlayground.Helpers
Assembly ADPlayground
Modifiers static

Utilities for converting and parsing LDAP Distinguished Names (DNs) and canonical names. Centralizes DN logic for use across analyzers, queries, and rules.

Inheritance

  • Object
  • DistinguishedNameHelper

Methods

public static String BuildChildDistinguishedName(String attributeName, String value, String parentDistinguishedName) #
Returns: String

Builds a child distinguished name under the supplied parent distinguished name.

Parameters

attributeName System.String requiredposition: 0
value System.String requiredposition: 1
parentDistinguishedName System.String requiredposition: 2
public static String BuildRelativeDistinguishedName(String attributeName, String value) #
Returns: String

Builds a relative distinguished name using RFC 4514-compatible escaping for the value.

Parameters

attributeName System.String requiredposition: 0
value System.String requiredposition: 1
public static IReadOnlyList<String> EnumerateOrganizationalUnits(String distinguishedName, Boolean includeParent = false) #
Returns: IReadOnlyList<String>

Enumerates OU paths for each level in the DN (optionally including the full DN first).

Parameters

distinguishedName System.String requiredposition: 0
includeParent System.Boolean = false optionalposition: 1
public static String FromCanonicalDomain(String canonicalDomain) #
Returns: String

Converts a canonical domain (domain.tld) to a domain DN (DC=domain,DC=tld).

Parameters

canonicalDomain System.String requiredposition: 0
public static String FromCanonicalObject(String canonical) #
Returns: String

Converts a canonical object path (domain/path/object) to a full object DN.

Parameters

canonical System.String requiredposition: 0
public static String FromCanonicalOu(String canonical) #
Returns: String

Converts a canonical OU path (domain/path) to an OU DN.

Parameters

canonical System.String requiredposition: 0
public static String GetCanonicalName(String distinguishedName) #
Returns: String

Returns the canonical name for a DN (domain.tld\path\object) with unescaped commas.

Parameters

distinguishedName System.String requiredposition: 0
public static String GetDomainCanonicalName(String distinguishedName) #
Returns: String

Returns the domain component of a DN as a dotted canonical name (e.g. DC=ad,DC=contoso -> ad.contoso). Mirrors PowerShell ConvertFrom-DistinguishedName -ToDomainCN behavior.

Parameters

distinguishedName System.String requiredposition: 0
public static String GetDomainDnTail(String distinguishedName) #
Returns: String

Returns the DC=... tail of the DN, or empty.

Parameters

distinguishedName System.String requiredposition: 0
public static String GetLastRdnValue(String distinguishedName) #
Returns: String

Returns the last RDN value (CN/OU value only) with unescaping.

Parameters

distinguishedName System.String requiredposition: 0
public static String GetOrganizationalUnitPath(String distinguishedName) #
Returns: String

Returns the OU path starting from the first OU= segment, or the remainder after the first CN= when no OU exists.

Parameters

distinguishedName System.String requiredposition: 0
public static String GetParentContainer(String distinguishedName) #
Returns: String

Returns the parent container for the supplied DN, mirroring the PowerShell ConvertFrom-DistinguishedName -ToContainer logic. Objects inside containers return their parent container, while container objects return themselves. Domains (DC=...) are returned unchanged.

Parameters

distinguishedName System.String requiredposition: 0
public static String GetParentDistinguishedName(String distinguishedName) #
Returns: String

Returns the immediate parent distinguished name (all RDNs except the first), or empty when unavailable.

Parameters

distinguishedName System.String requiredposition: 0
public static Boolean LooksLikeDistinguishedName(String value) #
Returns: Boolean

Best-effort heuristic for checking whether a string looks like a DN. Intended only for UI/tool input routing, not for validation/security decisions.

Parameters

value System.String requiredposition: 0
public static String ToFqdn(String distinguishedName) #
Returns: String

Attempts to build an FQDN host from a CN DN (best-effort; limited cases only).

Parameters

distinguishedName System.String requiredposition: 0