System.Security.Policy.ApplicationSecurityManager.DetermineApplicationTrustInternal C# (CSharp) Method

DetermineApplicationTrustInternal() static private method

static private DetermineApplicationTrustInternal ( ActivationContext activationContext, TrustManagerContext context ) : ApplicationTrust
activationContext ActivationContext
context TrustManagerContext
return ApplicationTrust
        internal static ApplicationTrust DetermineApplicationTrustInternal (ActivationContext activationContext, TrustManagerContext context) {
            ApplicationTrust trust = null;
            ApplicationTrustCollection userTrusts = new ApplicationTrustCollection(true);

            // See if there is a persisted trust decision for this application.
            if ((context == null || !context.IgnorePersistedDecision)) {
                trust = userTrusts[activationContext.Identity.FullName];
                if (trust != null)
                    return trust;
            }

            // There is no cached trust decision so invoke the trust manager.
            trust = ApplicationTrustManager.DetermineApplicationTrust(activationContext, context);
            if (trust == null)
                trust = new ApplicationTrust(activationContext.Identity);
            // make sure the application identity is correctly set.
            trust.ApplicationIdentity = activationContext.Identity;
            if (trust.Persist)
                userTrusts.Add(trust);

            return trust;
        }

Usage Example

Example #1
0
        public static bool DetermineApplicationTrust(ActivationContext activationContext, TrustManagerContext context)
        {
            if (activationContext == null)
            {
                throw new ArgumentNullException("activationContext");
            }
            AppDomainManager domainManager = AppDomain.CurrentDomain.DomainManager;

            if (domainManager != null)
            {
                HostSecurityManager hostSecurityManager = domainManager.HostSecurityManager;
                if (hostSecurityManager != null && (hostSecurityManager.Flags & HostSecurityManagerOptions.HostDetermineApplicationTrust) == HostSecurityManagerOptions.HostDetermineApplicationTrust)
                {
                    ApplicationTrust applicationTrust = hostSecurityManager.DetermineApplicationTrust(CmsUtils.MergeApplicationEvidence((Evidence)null, activationContext.Identity, activationContext, (string[])null), (Evidence)null, context);
                    if (applicationTrust == null)
                    {
                        return(false);
                    }
                    return(applicationTrust.IsApplicationTrustedToRun);
                }
            }
            ApplicationTrust applicationTrustInternal = ApplicationSecurityManager.DetermineApplicationTrustInternal(activationContext, context);

            if (applicationTrustInternal == null)
            {
                return(false);
            }
            return(applicationTrustInternal.IsApplicationTrustedToRun);
        }