AppDomain.IsFullyTrusted Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob in die aktuelle Anwendungsdomäne geladene Assemblys mit vollständiger Vertrauenswürdigkeit ausgeführt werden.Gets a value that indicates whether assemblies that are loaded into the current application domain execute with full trust.

public:
 property bool IsFullyTrusted { bool get(); };
public bool IsFullyTrusted { get; }
member this.IsFullyTrusted : bool
Public ReadOnly Property IsFullyTrusted As Boolean

Eigenschaftswert

true, wenn in die aktuelle Anwendungsdomäne geladene Assemblys mit voller Vertrauenswürdigkeit ausgeführt werden, andernfalls false.true if assemblies that are loaded into the current application domain execute with full trust; otherwise, false.

Beispiele

Im folgenden Beispiel werden die IsFullyTrusted-Eigenschaft und die Assembly.IsFullyTrusted-Eigenschaft mit vollständig vertrauenswürdigen und teilweise vertrauenswürdigen Anwendungs Domänen veranschaulicht.The following example demonstrates the IsFullyTrusted property and the Assembly.IsFullyTrusted property with fully trusted and partially trusted application domains. Die voll vertrauenswürdige Anwendungsdomäne ist die Standard Anwendungsdomäne für die Anwendung.The fully trusted application domain is the default application domain for the application. Die teilweise vertrauenswürdige Anwendungsdomäne wird mithilfe der AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])-Methoden Überladung erstellt.The partially trusted application domain is created by using the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method overload.

Im Beispiel wird eine Worker Klasse verwendet, die von MarshalByRefObjectabgeleitet ist, sodass Sie über Anwendungs Domänen Grenzen hinweg gemarshallt werden kann.The example uses a Worker class that derives from MarshalByRefObject, so it can be marshaled across application domain boundaries. Im Beispiel wird ein Worker-Objekt in der Standard Anwendungsdomäne erstellt.The example creates a Worker object in the default application domain. Anschließend wird die TestIsFullyTrusted-Methode aufgerufen, um den Eigenschafts Wert für die Anwendungsdomäne anzuzeigen, und für zwei Assemblys, die in die Anwendungsdomäne geladen werden: mscorlib, das Teil der .NET Framework ist, und die Beispielassembly.It then calls the TestIsFullyTrusted method to display the property value for the application domain and for two assemblies that are loaded into the application domain: mscorlib, which is part of the .NET Framework, and the example assembly. Die Anwendungsdomäne ist voll vertrauenswürdig, sodass beide Assemblys voll vertrauenswürdig sind.The application domain is fully trusted, so both assemblies are fully trusted.

Im Beispiel wird ein weiteres Worker Objekt in einer Sandbox-Anwendungsdomäne erstellt, und die TestIsFullyTrusted-Methode wird erneut aufgerufen.The example creates another Worker object in a sandboxed application domain and again calls the TestIsFullyTrusted method. Mscorlib ist immer vertrauenswürdig, selbst in einer teilweise vertrauenswürdigen Anwendungsdomäne, aber die Beispielassembly ist teilweise vertrauenswürdig.Mscorlib is always trusted, even in a partially trusted application domain, but the example assembly is partially trusted.

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
 */
Public Class Worker
    Inherits MarshalByRefObject
    
    Shared Sub Main()
 
        Dim w As New Worker()
        w.TestIsFullyTrusted()
        
        Dim adSandbox As AppDomain = GetInternetSandbox()
        w = CType(adSandbox.CreateInstanceAndUnwrap(
                            GetType(Worker).Assembly.FullName, 
                            GetType(Worker).FullName), 
                  Worker)
        w.TestIsFullyTrusted()
    
    End Sub 
    
    Public Sub TestIsFullyTrusted() 

        Dim ad As AppDomain = AppDomain.CurrentDomain
        Console.WriteLine(vbCrLf & "Application domain '{0}': IsFullyTrusted = {1}", 
                          ad.FriendlyName, ad.IsFullyTrusted)
        
        Console.WriteLine("   IsFullyTrusted = {0} for the current assembly", 
                          GetType(Worker).Assembly.IsFullyTrusted)
        
        Console.WriteLine("   IsFullyTrusted = {0} for mscorlib", 
                          GetType(Integer).Assembly.IsFullyTrusted)
    
    End Sub 
    
    ' ------------ Helper method ---------------------------------------
    Shared Function GetInternetSandbox() As AppDomain 

        ' Create the permission set to grant to all assemblies.
        Dim hostEvidence As New System.Security.Policy.Evidence()
        hostEvidence.AddHostEvidence(
                    New System.Security.Policy.Zone(System.Security.SecurityZone.Internet))
        Dim pset As System.Security.PermissionSet = 
                           System.Security.SecurityManager.GetStandardSandbox(hostEvidence)
        
        ' Identify the folder to use for the sandbox.
        Dim ads As New AppDomainSetup()
        ads.ApplicationBase = System.IO.Directory.GetCurrentDirectory()
        
        ' Create the sandboxed application domain.
        Return AppDomain.CreateDomain("Sandbox", hostEvidence, ads, pset, Nothing)
    
    End Function 
End Class 

' 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
' 

Hinweise

Diese Methode gibt immer true für die Standard Anwendungsdomäne einer Anwendung zurück, die auf dem Desktop ausgeführt wird.This method always returns true for the default application domain of an application that runs on the desktop. Er gibt false für eine Sandbox-Anwendungsdomäne zurück, die mit der AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])-Methoden Überladung erstellt wurde, es sei denn, die Berechtigungen, die der Anwendungsdomäne erteilt werden, entsprechen den vollständigen Vertrauens Stellungen.It returns false for a sandboxed application domain that was created by using the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method overload, unless the permissions that are granted to the application domain are equivalent to full trust.

Gilt für: