This documentation is archived and is not being maintained.

System.DirectoryServices.AccountManagement Namespace

The System.DirectoryServices.AccountManagement namespace provides uniform access and manipulation of user, computer, and group security principals across the multiple principal stores: Active Directory Domain Services (AD DS), Active Directory Lightweight Directory Services (AD LDS), and Machine SAM (MSAM). System.DirectoryServices.AccountManagement manages directory objects independent of the System.DirectoryServices namespace.

Managed directory services applications can take advantage of the AccountManagement API to simplify management of user, computer and group principals. Solutions that previously required intricate knowledge of the store or lengthy code, such as finding all groups to which a user belongs, are accomplished in a few lines of code with the AccountManagement API.

The following features are available on the AccountManagement API:

  • Basic directory operations such as creating and updating security principals is simplified. The application requires less knowledge of the underlying stores to perform these operations.

  • Applications can extend the object model to include new types of directory objects.

  • Account management tasks, such as enabling and disabling a user account, are simplified.

  • Cross-store support allows group objects in the Active Directory Domain Services (AD DS), Active Directory Lightweight Directory Services (AD LDS), and Machine SAM (MSAM) databases to contain members from different types of stores.

  • Query by example searching, available on the PrincipalaSearcher class, enables applications to set properties on a principal object and search the selected store for other objects that contain matching property values.

  • Enhanced search on computer, user and group principal objects enables applications to search the selected store for matching principal objects.

  • Recursive search, available on the group principal object, enables applications to search a group recursively and return only principal objects that are leaf nodes.

  • Credential validation against the Machine SAM, AD DS, and AD LS stores is simplified.

  • Connections speeds are increased by using the Fast Concurrent Bind (FSB) feature when available. Connection caching decreases the number of ports used.

Public classAdvancedFiltersThis class provides writable access to certain attributes so that users can modify read-only properties of the "dummy" principal object that is passed to a PrincipalSearcher object when using Query By Example
Public classAuthenticablePrincipalEncapsulates the account and contact data common to principals that can be authenticated.
Public classComputerPrincipalEncapsulates principals that are computer accounts.
Public classDirectoryObjectClassAttributeRepresents the schema object that is used to create an object of this type in the directory. This attribute is required for principal extensions and can only be set on classes.
Public classDirectoryPropertyAttributeContains the data required by the store to map a principal property to a directory attribute. This attribute is required for principal extensions and can only be set on a property. It must be specified on every property that represents a directory attribute in the extended class.
Public classDirectoryRdnPrefixAttributeThe RDN prefix used to construct the RDN for the new object that is inserted into the store. The default RDN prefix of "CN" is used by the Account Management API if this attribute is not set. This attribute is optional and can only be set on principal extension classes.
Public classGroupPrincipalEncapsulates group accounts. Group accounts can be arbitrary collections of principal objects or accounts created for administrative purposes.
Public classMultipleMatchesExceptionThis exception is thrown by methods that expect to match a single principal object when there are multiple matches to the search query.
Public classNoMatchingPrincipalExceptionThis exception is thrown when no matching principal object could be found with the specified parameters.
Public classPasswordExceptionThis exception is thrown when a password does not meet complexity requirements.
Public classPrincipalEncapsulates the account data and operations common to all security principals. This is the abstract base class from which all security principals are derived.
Public classPrincipalCollectionA mutable collection of objects derived from the Principal class. This class is designed to be used for multi-valued properties that contain Principals. Manipulating the contents of this collection changes the contents of the corresponding store property, which is made permanent when Save is called on the corresponding principal object.
Public classPrincipalContextEncapsulates the server or domain against which all operations are performed, the container that is used as the base of those operations, and the credentials used to perform the operations.
Public classPrincipalExceptionThe base class of exceptions thrown by System.DirectoryServices.AccountManagement objects.
Public classPrincipalExistsExceptionThrown by Add when an attempt is made to insert a principal that already exists in the collection, or by System.DirectoryServices.AccountManagement.Principal.Save when an attempt is made to save a new principal that already exists in the store.
Public classPrincipalOperationExceptionThrown when ADSI returns an error during an operation to update the store.
Public classPrincipalSearcherEncapsulates the methods and search patterns used to execute a query against the underlying principal store.
Public classPrincipalSearchResult<T>Returns a collection of Principal objects that are returned by a search.
Public classPrincipalServerDownExceptionThis exception is thrown when the API is unable to connect to the server.
Public classPrincipalValueCollection<T>Multi-valued properties, such as PermittedWorkstations, have a value of the type PrincipalValueCollection<T>. This class provides methods to enumerate and manipulate those values.
Public classUserPrincipalEncapsulates principals that are user accounts.

Public enumerationContextOptionsSpecifies the options that are used for binding to the server. The application can set multiple options that are linked with a bitwise OR operation.
Public enumerationContextTypeSpecifies the type of store to which the principal belongs.
Public enumerationGroupScopeSpecifies the scope of the group principal.
Public enumerationIdentityTypeSpecifies the format of the identity.
Public enumerationMatchTypeThe MatchType enumeration specifies the type of comparison used in a search.