This documentation is archived and is not being maintained.

UserPrincipal.FindByIdentity Method (PrincipalContext, IdentityType, String)

Returns a user principal object that matches the specified identity type, and value. This version of the FindByIdentity method determines the format of the identity value.

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

public static UserPrincipal FindByIdentity(
	PrincipalContext context,
	IdentityType identityType,
	string identityValue


Type: System.DirectoryServices.AccountManagement.PrincipalContext

The PrincipalContex that specifies the server or domain against which operations are performed.

Type: System.DirectoryServices.AccountManagement.IdentityType

A IdentityType enumeration value that specifies the format of the identityValue parameter.

Type: System.String

The identity of the user principal. This parameter can be any format that is contained in the IdentityType enumeration.

Return Value

Type: System.DirectoryServices.AccountManagement.UserPrincipal
A UserPrincipal object that matches the specified identity value and type, or null if no matches are found.


Multiple user principal objects matching the current user object were found.


The identity value is not a valid IdentityType enumeration value.

The following code connects to the local computer store. Since the credentials are not specified in the PrincipalContext constructor, the credentials of the user running the current thread are used.

A search is performed to find the user who has SamAccountName "Guest".

If the user is found, a check is performed to determine whether this user's account is enabled. If the account is not enabled, the example code enables it.

PrincipalContext ctx = new PrincipalContext(ContextType.Machine);

UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, 

if(usr != null)
    if (usr.Enabled == false)
        usr.Enabled = true;


Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5