private static extern void SetCanonicalConditionalAptcaList(AppDomainHandle appDomain, string canonicalList);
 private static extern void SetSecurityHomogeneousFlag(AppDomainHandle domain,
                                                       [MarshalAs(UnmanagedType.Bool)] bool runtimeSuppliedHomogenousGrantSet);
 private static extern void SetLegacyCasPolicyEnabled(AppDomainHandle domain);
 private static extern void GetAppDomainManagerType(AppDomainHandle domain,
                                                    StringHandleOnStack retAssembly,
                                                    StringHandleOnStack retType);
 private static extern void SetAppDomainManagerType(AppDomainHandle domain,
                                                    string assembly,
                                                    string type);
 private static extern void GetGrantSet(AppDomainHandle domain, ObjectHandleOnStack retGrantSet);
 private static extern bool GetIsLegacyCasPolicyEnabled(AppDomainHandle domain);
 private static extern void SetupDomainSecurity(AppDomainHandle appDomain,
                                                ObjectHandleOnStack appDomainEvidence,
                                                IntPtr creatorsSecurityDescriptor,
                                                [MarshalAs(UnmanagedType.Bool)] bool publishAppDomain);
 private static extern bool DisableFusionUpdatesFromADManager(AppDomainHandle domain);
示例#10
0
        private AppDomainHandle CreateAppDomain(string baseDirectory)
        {
            var friendlyName = String.Format("Graywulf_{0}", Guid.NewGuid());

            // Shadow copying assablies is necessary for the scheduler to work, however it is not supported
            // under Windows 2003. Since web servers still run this, a workaround has to be made here.
            string shadowcopy;
            if (System.Environment.OSVersion.Platform == PlatformID.Win32NT &&
                System.Environment.OSVersion.Version.Major >= 6)
            {
                shadowcopy = "true";
            }
            else
            {
                shadowcopy = "false";
            }

            var setup = new AppDomainSetup()
            {
                ApplicationBase = baseDirectory,
                ApplicationName = AppDomain.CurrentDomain.SetupInformation.ApplicationName,
                ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
                DisallowApplicationBaseProbing = false,
                DisallowBindingRedirects = true,
                DisallowCodeDownload = true,
                ShadowCopyFiles = shadowcopy,

                //CachePath = "",
                //DynamicBase = "",
                //PrivateBinPath = "",
                //PrivateBinPathProbe = "",
                //ShadowCopyDirectories = "",
            };

            // Create the domain
            var ad = AppDomain.CreateDomain(friendlyName, null, setup);

            // Create and unwrap the handler that allows interaction with the domain
            var helper = AppDomainHelper.CreateInstanceAndUnwrap(ad);

            // Create and return the handle to the new domain
            var handle = new AppDomainHandle()
            {
                AppDomain = ad,
                Helper = helper,
            };

            // Save handle for future use
            appDomains.Add(ad.Id, handle);

            return handle;
        }
示例#11
0
 private static extern void SetSecurityHomogeneousFlag(AppDomainHandle domain,
                                                       [MarshalAs(UnmanagedType.Bool)] bool runtimeSuppliedHomogenousGrantSet);
示例#12
0
 private static extern bool DisableFusionUpdatesFromADManager(AppDomainHandle domain);
示例#13
0
 private static extern void GetGrantSet(AppDomainHandle domain, ObjectHandleOnStack retGrantSet);
示例#14
0
 private static extern void SetupDomainSecurity(AppDomainHandle appDomain,
                                                ObjectHandleOnStack appDomainEvidence,
                                                IntPtr creatorsSecurityDescriptor,
                                                [MarshalAs(UnmanagedType.Bool)] bool publishAppDomain);