HostSecurityManager.DetermineApplicationTrust 메서드

정의

애플리케이션을 실행할지 여부를 결정합니다.

public:
 virtual System::Security::Policy::ApplicationTrust ^ DetermineApplicationTrust(System::Security::Policy::Evidence ^ applicationEvidence, System::Security::Policy::Evidence ^ activatorEvidence, System::Security::Policy::TrustManagerContext ^ context);
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
[<System.Security.SecurityCritical>]
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

매개 변수

applicationEvidence
Evidence

애플리케이션을 활성화할 증거입니다.

activatorEvidence
Evidence

필요에 따라 애플리케이션 도메인 활성화에 대한 증명 정보입니다.

context
TrustManagerContext

신뢰 컨텍스트입니다.

반품

애플리케이션에 대한 신뢰 정보를 포함하는 개체입니다.

특성

예외

applicationEvidencenull입니다.

ActivationArguments 애플리케이션 증명 정보에서 개체를 찾을 수 없습니다.

-또는-

활성화 인수의 속성은 ActivationContext .입니다 null.

권한 부여 집합에 ApplicationTrust 지정한 최소 요청 집합이 ActivationContext포함되어 있지 않습니다.

예제

다음 예제에서는 사용자 지정 호스트 보안 관리자에 대 한 메서드를 재정의 DetermineApplicationTrust 하는 방법을 보여 있습니다. 이 예제는 클래스에 제공된 더 큰 예제의 HostSecurityManager 일부입니다.

[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

설명

이 메서드는 파생 클래스에서 재정의할 수 있습니다. 기본 구현은 애플리케이션 보안 관리자를 호출하여 애플리케이션을 실행해야 하는지 여부를 결정합니다.

기본 구현에서는 활성화자 증명 정보를 사용하지 않습니다. 그러나 재정의된 구현은 활성화자 증거를 사용하여 애플리케이션을 활성화하려는 애플리케이션 도메인에 대한 보안 증거를 확인할 수 있습니다.

적용 대상