次の方法で共有


IApplicationTrustManager.DetermineApplicationTrust メソッド

定義

アプリケーションを実行するかどうか、およびどのアクセス許可セットをアプリケーションに付与するかを判断します。

public:
 System::Security::Policy::ApplicationTrust ^ DetermineApplicationTrust(ActivationContext ^ activationContext, System::Security::Policy::TrustManagerContext ^ context);
public System.Security.Policy.ApplicationTrust DetermineApplicationTrust (ActivationContext activationContext, System.Security.Policy.TrustManagerContext context);
abstract member DetermineApplicationTrust : ActivationContext * System.Security.Policy.TrustManagerContext -> System.Security.Policy.ApplicationTrust
Public Function DetermineApplicationTrust (activationContext As ActivationContext, context As TrustManagerContext) As ApplicationTrust

パラメーター

activationContext
ActivationContext

アプリケーションのアクティベーション コンテキスト。

context
TrustManagerContext

アプリケーションの信頼マネージャー コンテキスト。

戻り値

アプリケーションについてセキュリティに関する決定を格納するオブジェクト。

次の例は、カスタム信頼マネージャーの DetermineApplicationTrust メソッドの実装を示しています。 このコード例は、 インターフェイス用に提供されるより大きな例の IApplicationTrustManager 一部です。

public ApplicationTrust DetermineApplicationTrust(ActivationContext appContext, TrustManagerContext context)
{
    ApplicationTrust trust = new ApplicationTrust(appContext.Identity);
    trust.IsApplicationTrustedToRun = false;

    ApplicationSecurityInfo asi = new ApplicationSecurityInfo(appContext);
    trust.DefaultGrantSet = new PolicyStatement(asi.DefaultRequestSet, PolicyStatementAttribute.Nothing);
    if (context.UIContext == TrustManagerUIContext.Run)
    {
        string message = "Do you want to run " + asi.ApplicationId.Name + " ?";
        string caption = "MyTrustManager";
        MessageBoxButtons buttons = MessageBoxButtons.YesNo;
        DialogResult result;

        // Displays the MessageBox.

        result = MessageBox.Show(message, caption, buttons);

        if (result == DialogResult.Yes)
        {
            trust.IsApplicationTrustedToRun = true;
            if (context != null)
                trust.Persist = context.Persist;
            else
                trust.Persist = false;
        }
    }

    return trust;
}
Public Function DetermineApplicationTrust(ByVal appContext As ActivationContext, ByVal context As TrustManagerContext) As ApplicationTrust Implements IApplicationTrustManager.DetermineApplicationTrust
    Dim trust As New ApplicationTrust(appContext.Identity)
    trust.IsApplicationTrustedToRun = False

    Dim asi As New ApplicationSecurityInfo(appContext)
    trust.DefaultGrantSet = New PolicyStatement(asi.DefaultRequestSet, _
    PolicyStatementAttribute.Nothing)
    If context.UIContext = TrustManagerUIContext.Run Then
        Dim message As String = "Do you want to run " + asi.ApplicationId.Name + " ?"
        Dim caption As String = "MyTrustManager"
        Dim buttons As MessageBoxButtons = MessageBoxButtons.YesNo
        Dim result As DialogResult

        ' Displays the MessageBox.
        result = MessageBox.Show(message, caption, buttons)

        If result = DialogResult.Yes Then
            trust.IsApplicationTrustedToRun = True
            If Not (context Is Nothing) Then
                trust.Persist = context.Persist
            Else
                trust.Persist = False
            End If
        End If
    End If
    Return trust

End Function 'DetermineApplicationTrust

注釈

メソッドは DetermineApplicationTrust ホストによって呼び出され、アプリケーションを実行する必要があるかどうか、およびどのアクセス許可セットを付与する必要があるかを判断します。 DetermineApplicationTrust は、 ApplicationTrust アプリケーションのコンテキスト内で実行されている各アセンブリに付与されるアクセス許可を表すアクセス許可セットを含む プロパティを持つ DefaultGrantSet オブジェクトを返します。 付与されたアクセス許可は、グローバル アセンブリ キャッシュ内のアセンブリには適用されません。 ApplicationTrustオブジェクトには、アプリケーションをIsApplicationTrustedToRun信頼する必要があるかどうかを示すために信頼マネージャーが設定するプロパティもあります。 信頼マネージャーがアプリケーションを信頼できることを示す場合、ホストはアプリケーションをアクティブ化し、そのアセンブリにコレクションで提供されるアクセス許可のセットを ApplicationTrust 付与します。

適用対象