Tramite il metodo Microsoft.SharePoint.Utilities.SPUtility.SearchWindowsPrincipals di SharePoint 2010, è possibile interrogare Active Directory per cercare tutti gli utenti che corrispondono a una specifica chiave di ricerca:
string url = "http://sharepoint2010.sgart.local/helpdesk/timesheet";

using (SPSite site = new SPSite(url))
{
    string searchText = "alberto";
    int maxCount = 500;
    bool reachMaxCount = false;

    IList<SPPrincipalInfo> users = SPUtility.SearchWindowsPrincipals(site.WebApplication
      , searchText
      , SPPrincipalType.User
      , maxCount
      , out reachMaxCount);
  ...
}
Gli altri possibili scope di ricerca sono:
  • SPPrincipalType.All
  • SPPrincipalType.DistributionList
  • SPPrincipalType.None
  • SPPrincipalType.SecurityGroup
  • SPPrincipalType.SharePointGroup
  • SPPrincipalType.User