public static DirectoryEntry CreateWorkspace() { String domainRoot = DirectoryServices.GetDomainDistinguishedName(); String orgUnitName = $"OU=SynUnitTests_{Utility.GenerateToken( 8 )},{domainRoot}"; // Setup Test Workspace Console.WriteLine($"Creating Workspace : [{orgUnitName}]"); Dictionary <string, List <string> > properties = new Dictionary <string, List <string> >(); DirectoryServices.AddProperty(properties, "description", "UnitTest Workspace"); DirectoryEntry workspace = DirectoryServices.CreateDirectoryEntry("OrganizationalUnit", orgUnitName, properties); Assert.That(workspace, Is.Not.Null); return(workspace); }
private void ProcessSearchRequest(AdSearchRequest request) { ActiveDirectoryStatus status = new ActiveDirectoryStatus() { Action = ActionType.Search, Status = AdStatusType.Success, Message = "Success", }; ActiveDirectoryObjectResult result = new ActiveDirectoryObjectResult() { Type = AdObjectType.SearchResults, }; try { string searchBase = request.SearchBase; if (String.IsNullOrWhiteSpace(request.SearchBase)) { searchBase = DirectoryServices.GetDomainDistinguishedName(); } roleManager.CanPerformActionOrException(requestUser, ActionType.Search, searchBase); String filter = request.Filter; if (request.Parameters != null) { foreach (RegexParameters param in request.Parameters) { filter = Regex.Replace(filter, param.Find, param.ReplaceWith); } } OnLogMessage("ProcessSearchRequest", $"Executing Search. Filter String: [{filter}]. Search Base: [{searchBase}]."); SearchResultsObject searchResults = DirectoryServices.Search(searchBase, filter, request.ReturnAttributes?.ToArray()); result.Object = searchResults; result.Statuses.Add(status); } catch (AdException ade) { ProcessActiveDirectoryException(result, ade, ActionType.Search); } results.Add(result); }
public UserPrincipal CreateUserPrincipal() { String name = this.Identity; String path = DirectoryServices.GetDomainDistinguishedName(); String domain = DirectoryServices.GetDomain( path ); UserPrincipal user = null; if ( DirectoryServices.IsDistinguishedName(this.Identity) ) user = DirectoryServices.CreateUserPrincipal( this.Identity, this.UserPrincipalName, this.SamAccountName ); if (this.Properties?.Count > 0) user.Save(); // User Must Exist Before Properties Can Be Updated. UpdateUserPrincipal( user ); return user; }