Ejemplo n.º 1
0
        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);
    }
Ejemplo n.º 3
0
        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;
        }