This documentation is archived and is not being maintained.

HostSecurityManager.DetermineApplicationTrust Method

Determines whether an application should be executed.

Namespace:  System.Security
Assembly:  mscorlib (in mscorlib.dll)

[SecurityPermissionAttribute(SecurityAction.Assert, Unrestricted = true)]
public virtual ApplicationTrust DetermineApplicationTrust(
	Evidence applicationEvidence,
	Evidence activatorEvidence,
	TrustManagerContext context
)

Parameters

applicationEvidence
Type: System.Security.Policy.Evidence
The evidence for the application to be activated.
activatorEvidence
Type: System.Security.Policy.Evidence
Optionally, the evidence for the activating application domain.
context
Type: System.Security.Policy.TrustManagerContext
The trust context.

Return Value

Type: System.Security.Policy.ApplicationTrust
An object that contains trust information about the application.

ExceptionCondition
ArgumentNullException

applicationEvidence is null.

ArgumentException

An ActivationArguments object could not be found in the application evidence.

-or-

The ActivationContext property in the activation arguments is null.

InvalidOperationException

The ApplicationTrust grant set does not contain the minimum request set specified by the ActivationContext.

This method can be overridden by a derived class. The base implementation calls the application security manager to determine if the application should be executed.

The base implementation does not use the activator evidence. However, an overridden implementation could use the activator evidence to determine the security evidence for the application domain attempting to activate the application.

The following example shows how to override the DetermineApplicationTrust method for a custom host security manager. This example is part of a larger example provided for the HostSecurityManager class.


[SecurityPermissionAttribute(SecurityAction.Demand, Execution = true)]
[SecurityPermissionAttribute(SecurityAction.Assert, Unrestricted = true)]
public override ApplicationTrust DetermineApplicationTrust(Evidence applicationEvidence, Evidence activatorEvidence, TrustManagerContext context)
{
    if (applicationEvidence == null)
        throw new ArgumentNullException("applicationEvidence");

    // Get the activation context from the application evidence.
    // This HostSecurityManager does not examine the activator evidence
    // nor is it concerned with the TrustManagerContext;
    // it simply grants the requested grant in the application manifest.

    IEnumerator enumerator = applicationEvidence.GetHostEnumerator();
    ActivationArguments activationArgs = null;
    while (enumerator.MoveNext())
    {
        activationArgs = enumerator.Current as ActivationArguments;
        if (activationArgs != null)
            break;
    }

    if (activationArgs == null)
        return null;

    ActivationContext activationContext = activationArgs.ActivationContext;
    if (activationContext == null)
        return null;

    ApplicationTrust trust = new ApplicationTrust(activationContext.Identity);
    ApplicationSecurityInfo asi = new ApplicationSecurityInfo(activationContext);
    trust.DefaultGrantSet = new PolicyStatement(asi.DefaultRequestSet, PolicyStatementAttribute.Nothing);
    trust.IsApplicationTrustedToRun = true;
    return trust;
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: