.NET Framework Class Library
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.

Classes
  ClassDescription
Public class AdvancedFiltersThis 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 class AuthenticablePrincipalEncapsulates the account and contact data common to principals that can be authenticated.
Public class ComputerPrincipalEncapsulates principals that are computer accounts.
Public class DirectoryObjectClassAttributeRepresents 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 class DirectoryPropertyAttributeContains 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 class DirectoryRdnPrefixAttributeThe 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 class GroupPrincipalEncapsulates group accounts. Group accounts can be arbitrary collections of principal objects or accounts created for administrative purposes.
Public class MultipleMatchesExceptionThis exception is thrown by methods that expect to match a single principal object when there are multiple matches to the search query.
Public class NoMatchingPrincipalExceptionThis exception is thrown when no matching principal object could be found with the specified parameters.
Public class PasswordExceptionThis exception is thrown when a password does not meet complexity requirements.
Public class PrincipalEncapsulates the account data and operations common to all security principals. This is the abstract base class from which all security principals are derived.
Public class PrincipalCollectionA 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 class PrincipalContextEncapsulates 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 class PrincipalExceptionThe base class of exceptions thrown by System.DirectoryServices.AccountManagement objects.
Public class PrincipalExistsExceptionThrown 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 class PrincipalOperationExceptionThrown when ADSI returns an error during an operation to update the store.
Public class PrincipalSearcherEncapsulates the methods and search patterns used to execute a query against the underlying principal store.
Public class PrincipalSearchResultTReturns a collection of Principal objects that are returned by a search.
Public class PrincipalServerDownExceptionThis exception is thrown when the API is unable to connect to the server.
Public class PrincipalValueCollectionTMulti-valued properties, such as PermittedWorkstations, have a value of the type PrincipalValueCollectionT. This class provides methods to enumerate and manipulate those values.
Public class UserPrincipalEncapsulates principals that are user accounts.
Enumerations
  EnumerationDescription
Public enumeration ContextOptionsSpecifies 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 enumeration ContextTypeSpecifies the type of store to which the principal belongs.
Public enumeration GroupScopeSpecifies the scope of the group principal.
Public enumeration IdentityTypeSpecifies the format of the identity.
Public enumeration MatchTypeThe MatchType enumeration specifies the type of comparison used in a search.