AuthenticablePrincipal.FindByLogonTime Method (PrincipalContext, DateTime, MatchType)

 

Returns a collection of authentication principal objects that have an account logon recorded in the specified date and time range.

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

public static PrincipalSearchResult<AuthenticablePrincipal> FindByLogonTime(
	PrincipalContext context,
	DateTime time,
	MatchType type
)

Parameters

context
Type: System.DirectoryServices.AccountManagement.PrincipalContext

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

time
Type: System.DateTime

A DateTime object that identifies the date and time of the logon record. This parameter is used with the type parameter to determine the range of time in which the returned objects have an account logon recorded.

type
Type: System.DirectoryServices.AccountManagement.MatchType

A MatchType enumeration value that specifies the type of match that is applied to the time parameter.

The time will default to UTC. If you want to specify the time in local time, then specify the Kind property of the time object as DateTimeKind.Local.

The following code connects to the ADAM instance hosted by the server "adamHost1.fabrikam.com" on port number "5000." The username (adamAdmin), and password (SecretPwd123) are specified in the PrincipalContext constructor.

A search is performed for all authenticable principals under the container "DC=adamApp1,DC=fabrikam,DC=com" that have not logged on to this ADAM instance for the last 45 days. The principals returned by the search are then deleted.

PrincipalContext ctx = new PrincipalContext(
                                      ContextType.ApplicationDirectory, 
                                      "adamHost1.fabrikam.com:5000", 
                                      "DC=adamApp1,DC=fabrikam,DC=com", 
                                      "adamAdmin", "SecretPwd123");

PrincipalSearchResult<AuthenticablePrincipal> oldPrincipals = 
                     AuthenticablePrincipal.FindByLogonTime(ctx, 
                            (DateTime.Now - new TimeSpan(45, 0, 0, 0)), 
                            MatchType.LessThan);

foreach (Principal p in oldPrincipals)
{
    p.Delete();
}

oldPrincipals.Dispose();
ctx.Dispose(); 

.NET Framework
Available since 3.5
Return to top
Show: