PrincipalContext Constructor (ContextType, String, String, ContextOptions)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Initializes a new instance of the PrincipalContext class with the specified context type, name, container, and context options.

Namespace:   System.DirectoryServices.AccountManagement
Assembly:  System.DirectoryServices.AccountManagement (in System.DirectoryServices.AccountManagement.dll)

public PrincipalContext(
	ContextType contextType,
	string name,
	string container,
	ContextOptions options


Type: System.DirectoryServices.AccountManagement.ContextType

A ContextType enumeration value specifying the type of store for the principal context.

Type: System.String

The name of the domain or server for Domain context types, the machine name for Machine context types, or the name of the server and port hosting the ApplicationDirectory instance.

If the name is null for a Domain context type this context is a domain controller for the domain of the user principal under which the thread is running. If the name is null for a Machine context type, this is the local machine name. This parameter cannot be null for ApplicationDirectory context types.

Type: System.String

The container on the store to use as the root of the context. All queries are performed under this root, and all inserts are performed into this container.

For Domain and ApplicationDirectory context types, this parameter is the distinguished name of a container object.

For Machine context types, this parameter must be set to null.

Type: System.DirectoryServices.AccountManagement.ContextOptions

A combination of one or more ContextOptions enumeration values specifying the options used to bind to the server. If this parameter is null, the default options are ContextOptions.Negotiate | ContextOptions.Signing | ContextOptions.Sealing.

Exception Condition

A container cannot be specified when the Machine context type is specified in the contextType parameter.

A name or container must be specified when ApplicationDirectory is specified in the contextType parameter.


The contextType parameter does not contain a valid ContextType enumeration value.

The options parameter does not contain a combination of valid ContextOptions enumeration values.

The InvalidOperationException may be thrown in subsequent directory operations calls that connect to the server if the container specified for a Domain principal context is not a valid container. A container is defined as an object whose schema class has the principal classes, either user, group, or computer, in its possibleInferiors attribute.

.NET Framework
Available since 3.5
Return to top