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); }
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); }