public static bool DetermineApplicationTrust(ActivationContext activationContext, TrustManagerContext context)
        {
            if (activationContext == null)
            {
                throw new ArgumentNullException("activationContext");
            }

            ApplicationTrust appTrust      = null;
            AppDomainManager domainManager = AppDomain.CurrentDomain.DomainManager;

            if (domainManager != null)
            {
                HostSecurityManager securityManager = domainManager.HostSecurityManager;
                if ((securityManager != null) && ((securityManager.Flags & HostSecurityManagerOptions.HostDetermineApplicationTrust) == HostSecurityManagerOptions.HostDetermineApplicationTrust))
                {
                    appTrust = securityManager.DetermineApplicationTrust(CmsUtils.MergeApplicationEvidence(null, activationContext.Identity, activationContext, null), null, context);
                    if (appTrust == null)
                    {
                        return(false);
                    }
                    return(appTrust.IsApplicationTrustedToRun);
                }
            }

            appTrust = DetermineApplicationTrustInternal(activationContext, context);
            if (appTrust == null)
            {
                return(false);
            }
            return(appTrust.IsApplicationTrustedToRun);
        }
예제 #2
0
        public static void CallMethods()
        {
            HostSecurityManager hsm = new HostSecurityManager();

            Policy.ApplicationTrust at = hsm.DetermineApplicationTrust(new Policy.Evidence(), new Policy.Evidence(), new Policy.TrustManagerContext());
            Policy.Evidence         e  = hsm.ProvideAppDomainEvidence(new Policy.Evidence());
        }
예제 #3
0
        [System.Security.SecuritySafeCritical]  // auto-generated
        protected static ObjectHandle CreateInstanceHelper(AppDomainSetup adSetup)
        {
            if (adSetup.ActivationArguments == null)
            {
                throw new ArgumentException(Environment.GetResourceString("Arg_MissingActivationArguments"));
            }
            Contract.EndContractBlock();

            adSetup.ActivationArguments.ActivateInstance = true;
            // inherit the caller's domain evidence for the activation.
            Evidence activatorEvidence = AppDomain.CurrentDomain.Evidence;
            // add the application identity as an evidence.
            Evidence appEvidence = CmsUtils.MergeApplicationEvidence(null,
                                                                     adSetup.ActivationArguments.ApplicationIdentity,
                                                                     adSetup.ActivationArguments.ActivationContext,
                                                                     adSetup.ActivationArguments.ActivationData);

            HostSecurityManager securityManager = AppDomain.CurrentDomain.HostSecurityManager;
            ApplicationTrust    appTrust        = securityManager.DetermineApplicationTrust(appEvidence, activatorEvidence, new TrustManagerContext());

            if (appTrust == null || !appTrust.IsApplicationTrustedToRun)
            {
                throw new PolicyException(Environment.GetResourceString("Policy_NoExecutionPermission"),
                                          System.__HResults.CORSEC_E_NO_EXEC_PERM,
                                          null);
            }

            ObjRef or = AppDomain.nCreateInstance(adSetup.ActivationArguments.ApplicationIdentity.FullName,
                                                  adSetup,
                                                  appEvidence,
                                                  appEvidence == null ? AppDomain.CurrentDomain.InternalEvidence : null,
                                                  AppDomain.CurrentDomain.GetSecurityDescriptor());

            if (or == null)
            {
                return(null);
            }
            return(RemotingServices.Unmarshal(or) as ObjectHandle);
        }
        protected static ObjectHandle CreateInstanceHelper(AppDomainSetup adSetup)
        {
            if (adSetup.ActivationArguments == null)
            {
                throw new ArgumentException(Environment.GetResourceString("Arg_MissingActivationArguments"));
            }
            adSetup.ActivationArguments.ActivateInstance = true;
            Evidence            evidence            = AppDomain.CurrentDomain.Evidence;
            Evidence            evidence2           = CmsUtils.MergeApplicationEvidence(null, adSetup.ActivationArguments.ApplicationIdentity, adSetup.ActivationArguments.ActivationContext, adSetup.ActivationArguments.ActivationData);
            HostSecurityManager hostSecurityManager = AppDomain.CurrentDomain.HostSecurityManager;
            ApplicationTrust    applicationTrust    = hostSecurityManager.DetermineApplicationTrust(evidence2, evidence, new TrustManagerContext());

            if (applicationTrust == null || !applicationTrust.IsApplicationTrustedToRun)
            {
                throw new PolicyException(Environment.GetResourceString("Policy_NoExecutionPermission"), -2146233320, null);
            }
            ObjRef objRef = AppDomain.nCreateInstance(adSetup.ActivationArguments.ApplicationIdentity.FullName, adSetup, evidence2, (evidence2 == null) ? AppDomain.CurrentDomain.InternalEvidence : null, AppDomain.CurrentDomain.GetSecurityDescriptor());

            if (objRef == null)
            {
                return(null);
            }
            return(RemotingServices.Unmarshal(objRef) as ObjectHandle);
        }
예제 #5
0
 public static void CallMethods()
 {
     HostSecurityManager hsm = new HostSecurityManager();
     ApplicationTrust at = hsm.DetermineApplicationTrust(new Evidence(), new Evidence(), new TrustManagerContext());
     Evidence e = hsm.ProvideAppDomainEvidence(new Evidence());
 }
예제 #6
0
        public void DetermineApplicationTrust_Evidence_Evidence_Null()
        {
            HostSecurityManager hsm = new HostSecurityManager();

            hsm.DetermineApplicationTrust(new Evidence(), new Evidence(), null);
        }
예제 #7
0
        public void DetermineApplicationTrust_Evidence_Null_TrustManagerContext()
        {
            HostSecurityManager hsm = new HostSecurityManager();

            hsm.DetermineApplicationTrust(new Evidence(), null, new TrustManagerContext());
        }