コード例 #1
0
        /// <summary>
        /// Construct an application domain for running a test package
        /// </summary>
        /// <param name="package">The TestPackage to be run</param>
        public AppDomain CreateDomain(TestPackage package)
        {
            // Save package for use when we unload
            _package = package;

            AppDomainSetup setup = CreateAppDomainSetup(package);

            string hashCode = string.Empty;

            if (package.Name != null)
            {
                hashCode = package.Name.GetHashCode().ToString("x") + "-";
            }

            string domainName = "domain-" + hashCode + package.Name;

            log.Info("Creating application domain " + domainName);

            AppDomain runnerDomain = AppDomain.CreateDomain(domainName, /*evidence*/ null, setup);

            // Set PrincipalPolicy for the domain if called for in the package settings
            if (package.Settings.ContainsKey(EnginePackageSettings.PrincipalPolicy))
            {
                PrincipalPolicy policy = (PrincipalPolicy)Enum.Parse(typeof(PrincipalPolicy),
                                                                     package.GetSetting(EnginePackageSettings.PrincipalPolicy, "UnauthenticatedPrincipal"));

                runnerDomain.SetPrincipalPolicy(policy);
            }

            return(runnerDomain);
        }
コード例 #2
0
        public override void StartService()
        {
            try
            {
                // DomainManager has a soft dependency on the SettingsService.
                // If it's not available, default values are used.
                var settings = ServiceContext.GetService <ISettings>();
                if (settings != null)
                {
                    var pathSetting = settings.GetSetting("Options.TestLoader.ShadowCopyPath", "");
                    if (pathSetting != "")
                    {
                        _shadowCopyPath = Environment.ExpandEnvironmentVariables(pathSetting);
                    }

                    _setPrincipalPolicy = settings.GetSetting("Options.TestLoader.SetPrincipalPolicy", false);
                    _principalPolicy    = settings.GetSetting("Options.TestLoader.PrincipalPolicy", PrincipalPolicy.UnauthenticatedPrincipal);
                }

                Status = ServiceStatus.Started;
            }
            catch
            {
                Status = ServiceStatus.Error;
                throw;
            }
        }
コード例 #3
0
        public void SetPrincipalPolicy(PrincipalPolicy policy)
        {
            if (IsFinalizingForUnload())
            {
                throw new AppDomainUnloadedException();
            }

            _principalPolicy = policy;
            _principal       = null;
        }
コード例 #4
0
ファイル: DomainManager.cs プロジェクト: jnm2/testcentric-gui
        /// <summary>
        /// Construct an application domain for running a test package
        /// </summary>
        /// <param name="package">The TestPackage to be run</param>
        public AppDomain CreateDomain(TestPackage package)
        {
            AppDomainSetup setup = CreateAppDomainSetup(package);

            string hashCode = string.Empty;

            if (package.Name != null)
            {
                hashCode = package.Name.GetHashCode().ToString("x") + "-";
            }

            string domainName = "domain-" + hashCode + package.Name;

// TODO: Make sure this is not needed before deleting
//            // Setup the Evidence
//            Evidence evidence = new Evidence(AppDomain.CurrentDomain.Evidence);
//#pragma warning disable 618
//            if (evidence.Count == 0)
//            {
//                Zone zone = new Zone(SecurityZone.MyComputer);
//                evidence.AddHost(zone);
//                Assembly assembly = Assembly.GetExecutingAssembly();
//                Url url = new Url(assembly.CodeBase);
//                evidence.AddHost(url);
//                Hash hash = new Hash(assembly);
//                evidence.AddHost(hash);
//            }
//#pragma warning restore 618

            log.Info("Creating application domain " + domainName);

            AppDomain runnerDomain = AppDomain.CreateDomain(domainName, /*evidence*/ null, setup);

            // Set PrincipalPolicy for the domain if called for in the package settings
            if (package.Settings.ContainsKey(EnginePackageSettings.PrincipalPolicy))
            {
                PrincipalPolicy policy = (PrincipalPolicy)Enum.Parse(typeof(PrincipalPolicy),
                                                                     package.GetSetting(EnginePackageSettings.PrincipalPolicy, "UnauthenticatedPrincipal"));

                runnerDomain.SetPrincipalPolicy(policy);
            }

            return(runnerDomain);
        }
コード例 #5
0
        /// <summary>
        /// Construct an application domain for running a test package
        /// </summary>
        /// <param name="package">The TestPackage to be run</param>
        public AppDomain CreateDomain(TestPackage package)
        {
            AppDomainSetup setup = CreateAppDomainSetup(package);

            string hashCode = string.Empty;

            if (package.Name != null)
            {
                hashCode = package.Name.GetHashCode().ToString("x") + "-";
            }

            string domainName = "domain-" + hashCode + package.Name;
            // Setup the Evidence
            Evidence evidence = new Evidence(AppDomain.CurrentDomain.Evidence);

#pragma warning disable CS0618 // Type or member is obsolete
            if (evidence.Count == 0)
#pragma warning restore CS0618 // Type or member is obsolete
            {
                Zone zone = new Zone(SecurityZone.MyComputer);
                evidence.AddHostEvidence(zone);
                Assembly assembly = Assembly.GetExecutingAssembly();
                Url      url      = new Url(assembly.CodeBase);
                evidence.AddHostEvidence(url);
                Hash hash = new Hash(assembly);
                evidence.AddHostEvidence(hash);
            }

            log.Info("Creating AppDomain " + domainName);

            AppDomain runnerDomain = AppDomain.CreateDomain(domainName, evidence, setup);

            // Set PrincipalPolicy for the domain if called for in the package settings
            if (package.Settings.ContainsKey(EnginePackageSettings.PrincipalPolicy))
            {
                PrincipalPolicy policy = (PrincipalPolicy)Enum.Parse(typeof(PrincipalPolicy),
                                                                     package.GetSetting(EnginePackageSettings.PrincipalPolicy, "UnauthenticatedPrincipal"));

                runnerDomain.SetPrincipalPolicy(policy);
            }

            return(runnerDomain);
        }
コード例 #6
0
 public void SetPrincipalPolicy(PrincipalPolicy policy)
 {
     _PrincipalPolicy = policy;
 }
コード例 #7
0
ファイル: AppDomain.cs プロジェクト: rabink/mono
		public void SetPrincipalPolicy (PrincipalPolicy policy)
		{
			if (IsFinalizingForUnload ())
				throw new AppDomainUnloadedException ();

			_principalPolicy = policy;
			_principal = null;
		}
コード例 #8
0
 public void SetPrincipalPolicy(PrincipalPolicy policy)
 {
     _principalPolicy = policy;
 }
コード例 #9
0
ファイル: AppDomain.cs プロジェクト: dotnet/corefx
 public void SetPrincipalPolicy(PrincipalPolicy policy) { }
コード例 #10
0
ファイル: AppDomain.cs プロジェクト: geoparsYoti/mono
		public void SetPrincipalPolicy (PrincipalPolicy policy)
		{
			if (IsFinalizingForUnload ())
				throw new AppDomainUnloadedException ();

#if MOBILE
			_principalPolicy = (int)policy;
#else
			_principalPolicy = policy;
#endif
			_principal = null;
		}
コード例 #11
0
 public void SetPrincipalPolicy(PrincipalPolicy policy)
 {
 }
コード例 #12
0
ファイル: AppDomain.cs プロジェクト: ForNeVeR/pnet
 // Set the policy for principals.
 public void SetPrincipalPolicy(PrincipalPolicy policy)
 {
     // Nothing to do here: we don't use such policies.
 }
コード例 #13
0
ファイル: DomainManager.cs プロジェクト: JohanLarsson/nunit
        public override void StartService() 
        {
            try
            {
                // DomainManager has a soft dependency on the SettingsService.
                // If it's not available, default values are used.
                var settings = ServiceContext.GetService<ISettings>();
                if (settings != null)
                {
                    var pathSetting = settings.GetSetting("Options.TestLoader.ShadowCopyPath", "");
                    if (pathSetting != "")
                        _shadowCopyPath = Environment.ExpandEnvironmentVariables(pathSetting);

                    _setPrincipalPolicy = settings.GetSetting("Options.TestLoader.SetPrincipalPolicy", false);
                    _principalPolicy = settings.GetSetting("Options.TestLoader.PrincipalPolicy", PrincipalPolicy.UnauthenticatedPrincipal);
                }

                Status = ServiceStatus.Started;
            }
            catch
            {
                Status = ServiceStatus.Error;
                throw;
            }
        }
コード例 #14
0
	// Set the policy for principals.
	public void SetPrincipalPolicy(PrincipalPolicy policy)
			{
				// Nothing to do here: we don't use such policies.
			}