Example #1
0
        public HttpResponseMessage CheckADObject(string adObject)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            ADObjectCheckResult result = new ADObjectCheckResult();

            result = ActiveDirectory.CheckADObjectType(adObject);

            response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(response);
        }
        public static ADObjectCheckResult GenerateADObjectCheckResultForValidUser()
        {
            ADObjectCheckResult result = new ADObjectCheckResult();

            result.code        = 0;
            result.adObject    = TestConstants.UserPrimary;
            result.queryResult = new List <string>()
            {
                "user"
            };
            return(result);
        }
        public static ADObjectCheckResult GenerateADObjectCheckResultForNonExistingADObject()
        {
            ADObjectCheckResult result = new ADObjectCheckResult();

            result.code        = 5;
            result.adObject    = TestConstants.InvalidADObject;
            result.queryResult = new List <string>()
            {
                "no such AD object"
            };

            return(result);
        }
        public static ADObjectCheckResult GenerateADObjectCheckResultForValidGroupAndComputer()
        {
            ADObjectCheckResult result = new ADObjectCheckResult();

            result.code        = 4;
            result.adObject    = TestConstants.GroupAndComputer;
            result.queryResult = new List <string>()
            {
                "group", "computer"
            };

            return(result);
        }
        public static ADObjectCheckResult GenerateADObjectCheckResultForValidGroup()
        {
            ADObjectCheckResult result = new ADObjectCheckResult();

            result.code        = 1;
            result.adObject    = TestConstants.GroupPrime;
            result.queryResult = new List <string>()
            {
                "group"
            };

            return(result);
        }
Example #6
0
        /// <summary>
        /// This method receives the name of an AD object and checks whether
        /// the object is a user, group or something else and returns the result.
        /// </summary>
        /// <param name="adObject">The name of the AD Object to check it's type.</param>
        /// <returns>an ADObjectCheckResult object containing the adObject, a list result if
        /// the object is a user, group or computer.
        /// The method returns an integer code to differentiate results:
        /// 0 - The AD Object is a user
        /// 1 - The AD Object is a group
        /// 2 - The AD Object is a computer
        /// 3 - The AD Object is a user and a computer
        /// 4 - The AD Object is a group and a computer
        /// 5 - There is no such AD Object</returns>
        public static ADObjectCheckResult CheckADObjectType(string adObject)
        {
            ADObjectCheckResult result = new ADObjectCheckResult();

            result.adObject = adObject;

            // Set up domain context.
            PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain, Constants.adQueryUser, Constants.adQueryPassword);

            // Find the object in AD.
            // We check for each AD Object seperately to avoid MultipleMatchesException.
            UserPrincipal     userObject     = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, adObject);
            GroupPrincipal    groupObject    = GroupPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, adObject);
            ComputerPrincipal computerObject = ComputerPrincipal.FindByIdentity(pc, adObject);

            if (userObject != null)
            {
                if (computerObject == null)
                {
                    // The input AD Object is a user.
                    result.code        = 0;
                    result.queryResult = new List <string>()
                    {
                        "user"
                    };
                }
                else
                {
                    // The input AD Object is a user and a computer.
                    result.code        = 3;
                    result.queryResult = new List <string>()
                    {
                        "user", "computer"
                    };
                }
            }
            else if (groupObject != null)
            {
                if (computerObject == null)
                {
                    // The input AD Object is a group.
                    result.code        = 1;
                    result.queryResult = new List <string>()
                    {
                        "group"
                    };
                }
                else
                {
                    // The input AD Object is a group and a computer.
                    result.code        = 4;
                    result.queryResult = new List <string>()
                    {
                        "group", "computer"
                    };
                }
            }
            else if (computerObject != null)
            {
                // The input AD Object is a computer.
                result.code        = 2;
                result.queryResult = new List <string>()
                {
                    "computer"
                };
            }
            else
            {
                // No such object in AD
                result.code        = 5;
                result.queryResult = new List <string>()
                {
                    "no such AD object"
                };
            }

            return(result);
        }