Lire en anglais

Partager via


AppDomain.IsFullyTrusted Propriété

Définition

Obtient une valeur qui indique si les assemblys chargés dans le domaine d'application actuel s'exécutent avec la confiance totale.

C#
public bool IsFullyTrusted { get; }

Valeur de propriété

Boolean

true si les assemblys chargés dans le domaine d'application actuel s'exécutent avec la confiance totale ; sinon, false.

Exemples

L’exemple suivant illustre la propriété et la IsFullyTrusted Assembly.IsFullyTrusted propriété avec des domaines d’application entièrement approuvés et partiellement approuvés. Le domaine d’application entièrement approuvé est le domaine d’application par défaut de l’application. Le domaine d’application partiellement approuvé est créé à l’aide de la AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) surcharge de méthode.

L’exemple utilise une Worker classe qui dérive MarshalByRefObjectde , afin qu’elle puisse être marshalée entre les limites du domaine d’application. L’exemple crée un Worker objet dans le domaine d’application par défaut. Il appelle ensuite la TestIsFullyTrusted méthode pour afficher la valeur de propriété du domaine d’application et pour deux assemblys chargés dans le domaine d’application : mscorlib, qui fait partie du .NET Framework et de l’exemple d’assembly. Le domaine d’application est entièrement approuvé. Les deux assemblys sont donc entièrement approuvés.

L’exemple crée un autre Worker objet dans un domaine d’application bac à sable (sandbox) et appelle à nouveau la TestIsFullyTrusted méthode. Mscorlib est toujours approuvé, même dans un domaine d’application partiellement approuvé, mais l’exemple d’assembly est partiellement approuvé.

C#
using System;

namespace SimpleSandboxing
{
    public class Worker : MarshalByRefObject
    {
        static void Main()
        {
            Worker w = new Worker();
            w.TestIsFullyTrusted();

            AppDomain adSandbox = GetInternetSandbox();
            w = (Worker) adSandbox.CreateInstanceAndUnwrap(
                               typeof(Worker).Assembly.FullName,
                               typeof(Worker).FullName);
            w.TestIsFullyTrusted();
        }

        public void TestIsFullyTrusted()
        {
            AppDomain ad = AppDomain.CurrentDomain;
            Console.WriteLine("\r\nApplication domain '{0}': IsFullyTrusted = {1}",
                                        ad.FriendlyName, ad.IsFullyTrusted);

            Console.WriteLine("   IsFullyTrusted = {0} for the current assembly",
                             typeof(Worker).Assembly.IsFullyTrusted);

            Console.WriteLine("   IsFullyTrusted = {0} for mscorlib",
                                        typeof(int).Assembly.IsFullyTrusted);
        }

        // ------------ Helper method ---------------------------------------
        static AppDomain GetInternetSandbox()
        {
            // Create the permission set to grant to all assemblies.
            System.Security.Policy.Evidence hostEvidence = new System.Security.Policy.Evidence();
            hostEvidence.AddHostEvidence(new System.Security.Policy.Zone(
                                                         System.Security.SecurityZone.Internet));
            System.Security.PermissionSet pset =
                                System.Security.SecurityManager.GetStandardSandbox(hostEvidence);

            // Identify the folder to use for the sandbox.
            AppDomainSetup ads = new AppDomainSetup();
            ads.ApplicationBase = System.IO.Directory.GetCurrentDirectory();

            // Create the sandboxed application domain.
            return AppDomain.CreateDomain("Sandbox", hostEvidence, ads, pset, null);
        }
    }
}

/* This example produces output similar to the following:

Application domain 'Example.exe': IsFullyTrusted = True
   IsFullyTrusted = True for the current assembly
   IsFullyTrusted = True for mscorlib

Application domain 'Sandbox': IsFullyTrusted = False
   IsFullyTrusted = False for the current assembly
   IsFullyTrusted = True for mscorlib
 */

Remarques

Cette méthode retourne true toujours pour le domaine d’application par défaut d’une application qui s’exécute sur le bureau. Elle retourne false un domaine d’application en bac à sable qui a été créé à l’aide de la AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) surcharge de méthode, sauf si les autorisations accordées au domaine d’application sont équivalentes à une confiance totale.

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1