AppDomain.IsFullyTrusted Właściwość

Definicja

Pobiera wartość wskazującą, czy zestawy ładowane do bieżącej domeny aplikacji są wykonywane z pełnym zaufaniem.

C#
public bool IsFullyTrusted { get; }

Wartość właściwości

true jeśli zestawy ładowane do bieżącej domeny aplikacji są wykonywane z pełnym zaufaniem; w przeciwnym razie , false.

Przykłady

W poniższym przykładzie pokazano IsFullyTrusted właściwość i Assembly.IsFullyTrusted właściwość z w pełni zaufanymi i częściowo zaufanymi domenami aplikacji. W pełni zaufana domena aplikacji jest domyślną domeną aplikacji. Częściowo zaufana domena aplikacji jest tworzona AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) przy użyciu przeciążenia metody.

W przykładzie użyto klasy pochodzącej Worker z MarshalByRefObjectklasy , aby można ją było marshalingować przez granice domeny aplikacji. W przykładzie tworzony jest Worker obiekt w domyślnej domenie aplikacji. Następnie wywołuje metodę TestIsFullyTrusted , aby wyświetlić wartość właściwości dla domeny aplikacji i dla dwóch zestawów załadowanych do domeny aplikacji: mscorlib, który jest częścią .NET Framework i przykładowego zestawu. Domena aplikacji jest w pełni zaufana, więc oba zestawy są w pełni zaufane.

W przykładzie tworzony jest inny Worker obiekt w domenie aplikacji w trybie piaskownicy i ponownie wywołuje metodę TestIsFullyTrusted . Biblioteka Mscorlib jest zawsze zaufana, nawet w częściowo zaufanej domenie aplikacji, ale przykładowy zestaw jest częściowo zaufany.

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
 */

Uwagi

Ta metoda zawsze zwraca true wartość dla domyślnej domeny aplikacji działającej na pulpicie. Zwraca false ona wartość dla domeny aplikacji w trybie piaskownicy, która została utworzona przy użyciu AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) przeciążenia metody, chyba że uprawnienia przyznane domenie aplikacji są równoważne pełnemu zaufaniu.

Dotyczy

Produkt Wersje
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.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, 4.8.1
.NET Standard 2.0, 2.1