IApplicationTrustManager Arabirim

Tanım

Bir uygulamanın yürütülip yürütülmeyeceğini ve uygulamaya hangi izin kümesinin verilmesi gerektiğini belirler.

public interface class IApplicationTrustManager : System::Security::ISecurityEncodable
[System.Runtime.InteropServices.ComVisible(true)]
public interface IApplicationTrustManager : System.Security.ISecurityEncodable
[<System.Runtime.InteropServices.ComVisible(true)>]
type IApplicationTrustManager = interface
    interface ISecurityEncodable
Public Interface IApplicationTrustManager
Implements ISecurityEncodable
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnekte basit bir uygulaması gösterilmektedir IApplicationTrustManager.

// To use the custom trust manager MyTrustManager, compile it into CustomTrustManager.dll, 
// place that assembly in the GAC, and  put the following elements in
// an ApplicationTrust.config file in the config folder in the Microsoft .NET framework
// installation folder.

//<?xml version="1.0" encoding="utf-8" ?>
//                    <ApplicationEntries />
//                    <IApplicationTrustManager class="MyNamespace.MyTrustManager, CustomTrustManager, Version=1.0.0.3, Culture=neutral, PublicKeyToken=5659fc598c2a503e"/>

using System;
using System.Security;
using System.Security.Policy;
using System.Windows.Forms;
namespace MyNamespace
{
    public class MyTrustManager : 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 SecurityElement ToXml()
        {
            SecurityElement se = new SecurityElement("IApplicationTrustManager");
            se.AddAttribute("class", typeof(MyTrustManager).AssemblyQualifiedName);
            return se;
        }

        public void FromXml(SecurityElement se)
        {
            if (se.Tag != "IApplicationTrustManager" || (string)se.Attributes["class"] != typeof(MyTrustManager).AssemblyQualifiedName)
                throw new ArgumentException("Invalid tag");
        }
    }
}
' To use the custom trust manager MyTrustManager, compile it into CustomTrustManager.dll, 
' place that assembly in the GAC, and  put the following elements in
' an ApplicationTrust.config file in the config folder in the Microsoft .NET framework
' installation folder.
'<?xml version="1.0" encoding="utf-8" ?>
'                    <ApplicationEntries />
'                    <IApplicationTrustManager class="MyNamespace.MyTrustManager, CustomTrustManager, Version=1.0.0.3, Culture=neutral, PublicKeyToken=5659fc598c2a503e"/>
Imports System.Security
Imports System.Security.Policy
Imports System.Windows.Forms


Public Class MyTrustManager
    Implements IApplicationTrustManager
    
    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
    
    Public Function ToXml() As SecurityElement Implements IApplicationTrustManager.ToXml
        Dim se As New SecurityElement("IApplicationTrustManager")
        se.AddAttribute("class", GetType(MyTrustManager).AssemblyQualifiedName)
        Return se

    End Function 'ToXml
    
    Public Sub FromXml(ByVal se As SecurityElement) Implements IApplicationTrustManager.FromXml
        If se.Tag <> "IApplicationTrustManager" OrElse _
        CStr(se.Attributes("class")) <> GetType(MyTrustManager).AssemblyQualifiedName Then
            Throw New ArgumentException("Invalid tag")
        End If

    End Sub
End Class

Açıklamalar

Güven yöneticileri arabirimini IApplicationTrustManager uygulamalıdır. Konak, bir uygulamanın yürütülmesi gerekip gerekmediğini ve uygulamaya hangi izinlerin verilmesi gerektiğini belirlemek için yöntemini çağırır IApplicationTrustManager.DetermineApplicationTrust .

.NET Framework 4 ve sonraki sürümlerde, arabirimin özel bir uygulaması IApplicationTrustManager olabilecek tek bir güven yöneticisi vardır. Varsayılan güven yöneticisi uygulaması, kullanıcıdan uygulamayı yükleme ve uygulamaya verilen izinleri yükseltme izni ister. Diğer güven yöneticisi uygulamaları farklı kullanıcı deneyimleri sağlayabilir. Örneğin bir uygulama, kullanıcıdan bu bilgileri istemesi yerine kurumsal bir listeyi güvenilir uygulamalar için denetleyebilir.

Yöntemler

DetermineApplicationTrust(ActivationContext, TrustManagerContext)

Bir uygulamanın yürütülip yürütülmeyeceğini ve uygulamaya hangi izin kümesinin verilmesi gerektiğini belirler.

FromXml(SecurityElement)

Xml kodlamasından belirtilen duruma sahip bir güvenlik nesnesini yeniden oluşturur.

(Devralındığı yer: ISecurityEncodable)
ToXml()

Güvenlik nesnesinin ve geçerli durumunun XML kodlamasını oluşturur.

(Devralındığı yer: ISecurityEncodable)

Şunlara uygulanır