Find the Latest Employee ID
The application creates a new user principal object for the query, since persisted principal objects cannot be used in queries. The PrincipalSearcher object is created to search for the latest employee ID. The underlying searcher object, DirectorySearcher, is retrieved to perform more complex search operations. Using the DirectorySearcher object, the application is able to sort the directory entries on employees ID before retrieving the latest employee ID with the FindAll method.
internal static int FindTheLatestEmployeeID()
{
// Creating the PrincipalContext
PrincipalContext principalContext = null;
try
{
principalContext = new PrincipalContext(ContextType.Domain, "fabrikam", "DC=fabrikam,DC=com");
}
catch (Exception e)
{
MessageBox.Show("Failed to create PrincipalContext. Exception: " + e);
Application.Exit();
}
//Retrieve the user with latest employee number.
UserPrincipal userQuery = new UserPrincipal(principalContext);
userQuery.EmployeeId = "*";
PrincipalSearcher principalSearcher = new PrincipalSearcher(userQuery);
if (principalSearcher.GetUnderlyingSearcherType() == typeof(DirectorySearcher))
{
DirectorySearcher directorySearcher = (DirectorySearcher)principalSearcher.GetUnderlyingSearcher();
directorySearcher.Sort.Direction = SortDirection.Descending;
directorySearcher.Sort.PropertyName = "employeeID";
}
UserPrincipal userPrincipal = null;
foreach (UserPrincipal usr in principalSearcher.FindAll())
{
userPrincipal = usr;
break;
}
int employeeID = 0;
if (userPrincipal != null)
Int32.TryParse(userPrincipal.EmployeeId, out employeeID);
return employeeID;
}
See Also
Reference
System.DirectoryServices.AccountManagement
Concepts
About System.DirectoryServices.AccountManagement
Using System.DirectoryServices.AccountManagement
Send comments about this topic to Microsoft.
Copyright © 2008 by Microsoft Corporation. All rights reserved.