コード例 #1
0
        private static bool VerifyClaimSourceAndAttributeExclusiveness(ADObject directoryObj, StringBuilder errorBuffer, ADFactory <T> .DirectoryOperation operation)
        {
            bool flag;
            bool flag1;
            bool flag2 = false;

            if (directoryObj.ModifiedProperties.Contains("msDS-ClaimSource"))
            {
                flag = true;
            }
            else
            {
                flag = directoryObj.AddedProperties.Contains("msDS-ClaimSource");
            }
            bool flag3 = flag;

            if (directoryObj.ModifiedProperties.Contains("msDS-ClaimAttributeSource"))
            {
                flag1 = true;
            }
            else
            {
                flag1 = directoryObj.AddedProperties.Contains("msDS-ClaimAttributeSource");
            }
            bool flag4 = flag1;

            if (directoryObj.Contains("msDS-ClaimSource") && directoryObj.Contains("msDS-ClaimAttributeSource"))
            {
                if (operation != ADFactory <T> .DirectoryOperation.Create)
                {
                    if (!flag3 || !flag4)
                    {
                        if (!flag3)
                        {
                            if (flag4)
                            {
                                directoryObj.ForceRemove("msDS-ClaimSource");
                            }
                        }
                        else
                        {
                            directoryObj.ForceRemove("msDS-ClaimAttributeSource");
                        }
                    }
                    else
                    {
                        flag2 = true;
                        errorBuffer.AppendLine(StringResources.SPCTBothSourceWarning);
                    }
                }
                else
                {
                    flag2 = true;
                    errorBuffer.AppendLine(StringResources.SPCTBothSourceWarning);
                }
            }
            return(!flag2);
        }
コード例 #2
0
        private static bool VerifySharesPossibleValueWithAndPossibleValueExclusiveness(ADObject directoryObj, ADFactory <T> .DirectoryOperation operation, StringBuilder errorBuffer)
        {
            bool flag;
            bool flag1 = false;

            if (directoryObj.ModifiedProperties.Contains("msDS-ClaimSharesPossibleValuesWith"))
            {
                flag = true;
            }
            else
            {
                flag = directoryObj.AddedProperties.Contains("msDS-ClaimSharesPossibleValuesWith");
            }
            bool flag2 = flag;
            bool flag3 = directoryObj.InternalProperties.Contains("SuggestedValues");

            if (directoryObj.Contains("msDS-ClaimSharesPossibleValuesWith") && directoryObj.Contains("msDS-ClaimPossibleValues"))
            {
                if (operation != ADFactory <T> .DirectoryOperation.Create)
                {
                    if (!flag2 || !flag3)
                    {
                        if (!flag2)
                        {
                            if (flag3)
                            {
                                directoryObj.ForceRemove("msDS-ClaimSharesPossibleValuesWith");
                            }
                        }
                        else
                        {
                            directoryObj.ForceRemove("msDS-ClaimPossibleValues");
                        }
                    }
                    else
                    {
                        flag1 = true;
                        errorBuffer.AppendLine(StringResources.CTBothPossibleValuesShareValueWarning);
                    }
                }
                else
                {
                    flag1 = true;
                    errorBuffer.AppendLine(StringResources.CTBothPossibleValuesShareValueWarning);
                }
            }
            return(!flag1);
        }
コード例 #3
0
        private bool ADClaimTypePreCommitFSRoutine(ADFactory <T> .DirectoryOperation operation, T instance, ADParameterSet parameters, ADObject directoryObj)
        {
            bool          classes       = true;
            StringBuilder stringBuilder = new StringBuilder();

            if (operation == ADFactory <T> .DirectoryOperation.Create || ADFactory <T> .DirectoryOperation.Update == operation)
            {
                bool switchParameterBooleanValue = parameters.GetSwitchParameterBooleanValue("SourceTransformPolicy");
                if (switchParameterBooleanValue)
                {
                    directoryObj.SetValue("msDS-ClaimSourceType", "TransformPolicy");
                    directoryObj.ForceRemove("msDS-ClaimAttributeSource");
                    directoryObj.ForceRemove("msDS-ClaimSource");
                }
                classes = classes & ADClaimTypeFactory <T> .VerifyClaimSourceAndAttributeExclusiveness(directoryObj, stringBuilder, operation);

                classes = classes & ADClaimTypeFactory <T> .VerifyClaimSourceAndPossibleValueExclusiveness(directoryObj, stringBuilder);

                classes = classes & ADClaimTypeFactory <T> .SetAndValidateClaimSourceType(directoryObj, stringBuilder);

                classes = classes & ADClaimTypeFactory <T> .VerifyRestrictValues(directoryObj, stringBuilder, base.CmdletSessionInfo, operation);

                if (directoryObj.Contains("msDS-ClaimValueType"))
                {
                    ADClaimValueType num = (ADClaimValueType)((long)Convert.ToInt32(directoryObj["msDS-ClaimValueType"].Value, CultureInfo.InvariantCulture));
                    classes = classes & ADCBACUtil.VerifyAndSetPossibleValues(directoryObj, num, stringBuilder);
                }
                classes = classes & ADClaimTypeFactory <T> .VerifyAppliesToClasses(directoryObj, stringBuilder, base.CmdletSessionInfo);

                if (classes)
                {
                    return(false);
                }
                else
                {
                    stringBuilder.AppendLine(StringResources.CTParameterValidationFailure);
                    throw new ADException(stringBuilder.ToString());
                }
            }
            else
            {
                return(false);
            }
        }