Share via


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

신뢰 컨텍스트입니다.

반환

애플리케이션에 대한 신뢰 정보가 들어 있는 개체입니다.

특성

예외

applicationEvidence이(가) null인 경우

애플리케이션 증명 정보에서 찾을 수 없는 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

설명

이 메서드는 파생 클래스로 재정의할 수 있습니다. 기본 구현은 애플리케이션을 실행 해야 하는 경우를 확인 하려면 애플리케이션 보안 관리자를 호출 합니다.

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

적용 대상