| Index: obsolete/Microsoft.VisualStudio.Project/UserProjectSecurityChecker.cs
|
| diff --git a/obsolete/Microsoft.VisualStudio.Project/UserProjectSecurityChecker.cs b/obsolete/Microsoft.VisualStudio.Project/UserProjectSecurityChecker.cs
|
| deleted file mode 100644
|
| index d26d11e4ceb6e5acbba9351267be05d4370ca7a6..0000000000000000000000000000000000000000
|
| --- a/obsolete/Microsoft.VisualStudio.Project/UserProjectSecurityChecker.cs
|
| +++ /dev/null
|
| @@ -1,181 +0,0 @@
|
| -/// Copyright (c) Microsoft Corporation. All rights reserved.
|
| -
|
| -using System;
|
| -using System.Globalization;
|
| -using System.IO;
|
| -using Microsoft.VisualStudio.Build.ComInteropWrapper;
|
| -
|
| -namespace Microsoft.VisualStudio.Project
|
| -{
|
| - /// <summary>
|
| - /// Does security validation of a user project before loading the project.
|
| - /// </summary>
|
| - public class UserProjectSecurityChecker : ProjectSecurityChecker
|
| - {
|
| - #region fields
|
| - /// <summary>
|
| - /// The project shim for the main project file.
|
| - /// We need this otherwise the msbuild API cannot check the user file.
|
| - /// </summary>
|
| - private ProjectShim mainProjectShim;
|
| -
|
| - #endregion
|
| -
|
| - #region ctors
|
| - /// <summary>
|
| - /// Overloaded Constructor
|
| - /// </summary>
|
| - /// <param name="projectFilePath">path to the project file</param>
|
| - /// <param name="serviceProvider">A service provider.</param>
|
| - public UserProjectSecurityChecker(IServiceProvider serviceProvider, string projectFilePath) :
|
| - base(serviceProvider, projectFilePath)
|
| - {
|
| - }
|
| - #endregion
|
| -
|
| - #region properties
|
| - /// <summary>
|
| - /// The main projects' shim.
|
| - /// </summary>
|
| - internal protected ProjectShim MainProjectShim
|
| - {
|
| - get
|
| - {
|
| - return this.mainProjectShim;
|
| - }
|
| - internal set
|
| - {
|
| - this.mainProjectShim = value;
|
| - }
|
| - }
|
| - #endregion
|
| -
|
| - #region overridden method
|
| - /// <summary>
|
| - /// Checks if the user file is safe with imports. If it has then the user file is considered unsafe.
|
| - /// </summary>
|
| - /// <param name="securityErrorMessage">At return describes the reason why the projects is not considered safe.</param>
|
| - /// <returns>true if the user project is safe regarding imports.</returns>
|
| - protected override bool IsProjectSafeWithImports(out string securityErrorMessage)
|
| - {
|
| - securityErrorMessage = String.Empty;
|
| -
|
| - string[] directImports = this.SecurityCheckHelper.GetDirectlyImportedProjects(this.ProjectShim);
|
| -
|
| - if(directImports != null && directImports.Length > 0)
|
| - {
|
| - securityErrorMessage = String.Format(CultureInfo.CurrentCulture, SR.GetString(SR.DetailsUserImport, CultureInfo.CurrentUICulture), Path.GetFileName(this.ProjectShim.FullFileName), directImports[0]);
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Checks if the project is safe regarding properties.
|
| - /// </summary>
|
| - /// <param name="securityErrorMessage">At return describes the reason why the projects is not considered safe.</param>
|
| - /// <returns>true if the project has only safe properties.</returns>
|
| - protected override bool IsProjectSafeWithProperties(out string securityErrorMessage)
|
| - {
|
| - securityErrorMessage = String.Empty;
|
| -
|
| - // Now ask the security check heper for the safe properties.
|
| - string reasonForFailure;
|
| - bool isUserFile;
|
| - bool isProjectSafe = this.SecurityCheckHelper.IsProjectSafe(ProjectSecurityChecker.DangerousPropertyProperty,
|
| - ProjectSecurityChecker.DefaultDangerousProperties,
|
| - this.mainProjectShim,
|
| - this.ProjectShim,
|
| - SecurityCheckPass.Properties,
|
| - out reasonForFailure,
|
| - out isUserFile);
|
| -
|
| - // Main project gets precedence over the user project.
|
| - // Do not report that since this is only for the user file.
|
| - if(!isUserFile)
|
| - {
|
| - return true;
|
| - }
|
| -
|
| - if(!isProjectSafe)
|
| - {
|
| - securityErrorMessage = this.GetMessageString(reasonForFailure, SR.DetailsProperty);
|
| - }
|
| -
|
| - return isProjectSafe;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Checks if the project is safe regarding targets.
|
| - /// </summary>
|
| - /// <param name="securityErrorMessage">At return describes the reason why the projects is not considered safe.</param>
|
| - /// <returns>true if the project has only safe targets.</returns>
|
| - protected override bool IsProjectSafeWithTargets(out string securityErrorMessage)
|
| - {
|
| - securityErrorMessage = String.Empty;
|
| -
|
| - // Now ask the security check heper for the safe targets.
|
| - string reasonForFailure;
|
| - bool isUserFile;
|
| - bool isProjectSafe = this.SecurityCheckHelper.IsProjectSafe(ProjectSecurityChecker.DangerousTargetProperty,
|
| - ProjectSecurityChecker.DefaultDangerousTargets,
|
| - this.mainProjectShim,
|
| - this.ProjectShim,
|
| - SecurityCheckPass.Targets,
|
| - out reasonForFailure,
|
| - out isUserFile);
|
| -
|
| - // Main project gets precedence over the user project.
|
| - // Do not report that since this is only for the user file.
|
| - if(!isUserFile)
|
| - {
|
| - return true;
|
| - }
|
| -
|
| - if(!isProjectSafe)
|
| - {
|
| - securityErrorMessage = this.GetMessageString(reasonForFailure, SR.DetailsTarget);
|
| - }
|
| -
|
| - return isProjectSafe;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Checks if the project is safe regarding items.
|
| - /// </summary>
|
| - /// <param name="securityErrorMessage">At return describes the reason why the projects is not considered safe.</param>
|
| - /// <returns>true if the project has only safe items.</returns>
|
| - protected override bool IsProjectSafeWithItems(out string securityErrorMessage)
|
| - {
|
| - securityErrorMessage = String.Empty;
|
| -
|
| - // Now ask the security check heper for the safe items.
|
| - string reasonForFailure;
|
| - bool isUserFile;
|
| -
|
| - bool isProjectSafe = this.SecurityCheckHelper.IsProjectSafe(ProjectSecurityChecker.DangerousItemsProperty,
|
| - ProjectSecurityChecker.DefaultDangerousItems,
|
| - this.mainProjectShim,
|
| - this.ProjectShim,
|
| - SecurityCheckPass.Items,
|
| - out reasonForFailure,
|
| - out isUserFile);
|
| -
|
| - // Main project gets precedence over the user project.
|
| - // Do not report that since this is only for the user file.
|
| - if(!isUserFile)
|
| - {
|
| - return true;
|
| - }
|
| -
|
| - if(!isProjectSafe)
|
| - {
|
| - securityErrorMessage = this.GetMessageString(reasonForFailure, SR.DetailsItem);
|
| - }
|
| -
|
| - return isProjectSafe;
|
| - }
|
| - #endregion
|
| - }
|
| -}
|
|
|