internal bool IsProjectSafe(string dangerousItemsPropertyName, string defaultDangerousItems, ProjectShim mainProject, ProjectShim userProject, SecurityCheckPass pass, out string reasonFailed, out bool isUserFile)
        {
            reasonFailed = string.Empty;
            isUserFile = false;
            string[] nonImportedItems = null;
            string[] nonImportedTargetNames = null;
            switch (pass) {
                case SecurityCheckPass.Targets:
                    if (mainProject != null) {
                        nonImportedItems = GetNonImportedTargetNames(mainProject);
                    }
                    if (userProject != null) {
                        nonImportedTargetNames = GetNonImportedTargetNames(userProject);
                    }
                    break;

                case SecurityCheckPass.Properties:
                    if (mainProject != null) {
                        nonImportedItems = GetNonImportedPropertyNames(mainProject);
                    }
                    if (userProject != null) {
                        nonImportedTargetNames = GetNonImportedPropertyNames(userProject);
                    }
                    break;

                case SecurityCheckPass.Items:
                    if (mainProject != null) {
                        nonImportedItems = GetNonImportedItemNames(mainProject);
                    }
                    if (userProject != null) {
                        nonImportedTargetNames = GetNonImportedItemNames(userProject);
                    }
                    break;

                default:
                    return false;
            }
            Dictionary<string, string> dangerousItems = CreateDangerousItemHashtable(defaultDangerousItems + mainProject.GetEvaluatedProperty(dangerousItemsPropertyName));
            bool flag = IsProjectSafeHelper(nonImportedItems, dangerousItems, out reasonFailed);
            if (!flag) {
                isUserFile = false;
                return false;
            }
            bool flag2 = IsProjectSafeHelper(nonImportedTargetNames, dangerousItems, out reasonFailed);
            if (!flag2) {
                isUserFile = true;
                return false;
            }
            return (flag && flag2);
        }
Exemple #2
0
        internal bool IsProjectSafe(string dangerousItemsPropertyName, string defaultDangerousItems, ProjectShim mainProject, ProjectShim userProject, SecurityCheckPass pass, out string reasonFailed, out bool isUserFile)
        {
            reasonFailed = string.Empty;
            isUserFile   = false;
            string[] nonImportedItems       = null;
            string[] nonImportedTargetNames = null;
            switch (pass)
            {
            case SecurityCheckPass.Targets:
                if (mainProject != null)
                {
                    nonImportedItems = GetNonImportedTargetNames(mainProject);
                }
                if (userProject != null)
                {
                    nonImportedTargetNames = GetNonImportedTargetNames(userProject);
                }
                break;

            case SecurityCheckPass.Properties:
                if (mainProject != null)
                {
                    nonImportedItems = GetNonImportedPropertyNames(mainProject);
                }
                if (userProject != null)
                {
                    nonImportedTargetNames = GetNonImportedPropertyNames(userProject);
                }
                break;

            case SecurityCheckPass.Items:
                if (mainProject != null)
                {
                    nonImportedItems = GetNonImportedItemNames(mainProject);
                }
                if (userProject != null)
                {
                    nonImportedTargetNames = GetNonImportedItemNames(userProject);
                }
                break;

            default:
                return(false);
            }
            Dictionary <string, string> dangerousItems = CreateDangerousItemHashtable(defaultDangerousItems + mainProject.GetEvaluatedProperty(dangerousItemsPropertyName));
            bool flag = IsProjectSafeHelper(nonImportedItems, dangerousItems, out reasonFailed);

            if (!flag)
            {
                isUserFile = false;
                return(false);
            }
            bool flag2 = IsProjectSafeHelper(nonImportedTargetNames, dangerousItems, out reasonFailed);

            if (!flag2)
            {
                isUserFile = true;
                return(false);
            }
            return(flag && flag2);
        }