HostSecurityManager.DetermineApplicationTrust(Evidence, Evidence, TrustManagerContext) Método

Definición

Determina si se debe ejecutar una aplicación.Determines whether an application should be executed.

public:
 virtual System::Security::Policy::ApplicationTrust ^ DetermineApplicationTrust(System::Security::Policy::Evidence ^ applicationEvidence, System::Security::Policy::Evidence ^ activatorEvidence, System::Security::Policy::TrustManagerContext ^ context);
[System.Security.SecurityCritical]
public virtual System.Security.Policy.ApplicationTrust DetermineApplicationTrust (System.Security.Policy.Evidence applicationEvidence, System.Security.Policy.Evidence activatorEvidence, System.Security.Policy.TrustManagerContext context);
abstract member DetermineApplicationTrust : System.Security.Policy.Evidence * System.Security.Policy.Evidence * System.Security.Policy.TrustManagerContext -> System.Security.Policy.ApplicationTrust
override this.DetermineApplicationTrust : System.Security.Policy.Evidence * System.Security.Policy.Evidence * System.Security.Policy.TrustManagerContext -> System.Security.Policy.ApplicationTrust
Public Overridable Function DetermineApplicationTrust (applicationEvidence As Evidence, activatorEvidence As Evidence, context As TrustManagerContext) As ApplicationTrust

Parámetros

applicationEvidence
Evidence

Evidencia para la aplicación que se va a activar.The evidence for the application to be activated.

activatorEvidence
Evidence

Opcionalmente, evidencia para el dominio de aplicación que realiza la activación.Optionally, the evidence for the activating application domain.

context
TrustManagerContext

Contexto de confianza.The trust context.

Devoluciones

Objeto que contiene información de confianza sobre la aplicación.An object that contains trust information about the application.

Atributos

Excepciones

applicationEvidence es null.applicationEvidence is null.

No se pudo encontrar un objeto ActivationArguments en la evidencia de la aplicación.An ActivationArguments object could not be found in the application evidence.

O bien-or- La propiedad ActivationContext de los argumentos de activación es null.The ActivationContext property in the activation arguments is null.

El conjunto de permisos ApplicationTrust concedido no contiene el conjunto de solicitudes mínimo especificado por ActivationContext.The ApplicationTrust grant set does not contain the minimum request set specified by the ActivationContext.

Ejemplos

En el ejemplo siguiente se muestra cómo invalidar el método de DetermineApplicationTrust para un administrador de seguridad de host personalizado.The following example shows how to override the DetermineApplicationTrust method for a custom host security manager. Este ejemplo forma parte de un ejemplo más extenso proporcionado para la clase HostSecurityManager.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;
}
    <SecurityPermissionAttribute(SecurityAction.Demand, Execution:=True), SecurityPermissionAttribute(SecurityAction.Assert, Unrestricted:=True)> _
    Public Overrides Function DetermineApplicationTrust(ByVal applicationEvidence As Evidence, ByVal activatorEvidence As Evidence, ByVal context As TrustManagerContext) As ApplicationTrust
        If applicationEvidence Is Nothing Then
            Throw New ArgumentNullException("applicationEvidence")
        End If
        ' 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.
        Dim enumerator As IEnumerator = applicationEvidence.GetHostEnumerator()
        Dim activationArgs As ActivationArguments = Nothing
        While enumerator.MoveNext()
            activationArgs = enumerator.Current '
            If Not (activationArgs Is Nothing) Then
                Exit While
            End If
        End While
        If activationArgs Is Nothing Then
            Return Nothing
        End If
        Dim activationContext As ActivationContext = activationArgs.ActivationContext
        If activationContext Is Nothing Then
            Return Nothing
        End If
        Dim trust As New ApplicationTrust(activationContext.Identity)
        Dim asi As New ApplicationSecurityInfo(activationContext)
        trust.DefaultGrantSet = New PolicyStatement(asi.DefaultRequestSet, PolicyStatementAttribute.Nothing)
        trust.IsApplicationTrustedToRun = True
        Return trust

    End Function 'DetermineApplicationTrust
End Class

Comentarios

Este método se puede invalidar mediante una clase derivada.This method can be overridden by a derived class. La implementación base llama al administrador de seguridad de aplicaciones para determinar si se debe ejecutar la aplicación.The base implementation calls the application security manager to determine if the application should be executed.

La implementación base no utiliza la evidencia de activador.The base implementation does not use the activator evidence. Sin embargo, una implementación invalidada podría usar la evidencia del activador para determinar la evidencia de seguridad para el dominio de aplicación que intenta activar la aplicación.However, an overridden implementation could use the activator evidence to determine the security evidence for the application domain attempting to activate the application.

Se aplica a