AppDomain.IsFullyTrusted AppDomain.IsFullyTrusted AppDomain.IsFullyTrusted AppDomain.IsFullyTrusted Property

Definición

Obtiene un valor que indica si los ensamblados que se cargan en el dominio de aplicación actual se ejecutan con plena confianza.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

Valor de propiedad

Es true si los ensamblados que se cargan en el dominio de aplicación actual se ejecutan con plena confianza; de lo contrario, es false.true if assemblies that are loaded into the current application domain execute with full trust; otherwise, false.

Ejemplos

En el ejemplo siguiente se IsFullyTrusted muestra la propiedad Assembly.IsFullyTrusted y la propiedad con dominios de aplicación de plena confianza y de confianza parcial.The following example demonstrates the IsFullyTrusted property and the Assembly.IsFullyTrusted property with fully trusted and partially trusted application domains. El dominio de aplicación de plena confianza es el dominio de aplicación predeterminado para la aplicación.The fully trusted application domain is the default application domain for the application. El dominio de aplicación de confianza parcial se crea mediante AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) la sobrecarga del método.The partially trusted application domain is created by using the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method overload.

En el ejemplo se Worker usa una clase que deriva MarshalByRefObjectde, por lo que se pueden calcular las referencias de los límites del dominio de aplicación.The example uses a Worker class that derives from MarshalByRefObject, so it can be marshaled across application domain boundaries. En el ejemplo se Worker crea un objeto en el dominio de aplicación predeterminado.The example creates a Worker object in the default application domain. A continuación, llama TestIsFullyTrusted al método para mostrar el valor de propiedad para el dominio de aplicación y para dos ensamblados que se cargan en el dominio de aplicación: mscorlib, que forma parte del .NET Framework y el ensamblado de ejemplo.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. El dominio de aplicación es de plena confianza, por lo que ambos ensamblados son de plena confianza.The application domain is fully trusted, so both assemblies are fully trusted.

En el ejemplo se Worker crea otro objeto en un dominio de aplicación en espacio aislado TestIsFullyTrusted y, de nuevo, se llama al método.The example creates another Worker object in a sandboxed application domain and again calls the TestIsFullyTrusted method. Mscorlib siempre es de confianza, incluso en un dominio de aplicación de confianza parcial, pero el ensamblado de ejemplo es de confianza parcial.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
' 

Comentarios

Este método siempre devuelve true para el dominio de aplicación predeterminado de una aplicación que se ejecuta en el escritorio.This method always returns true for the default application domain of an application that runs on the desktop. Devuelve false para un dominio de aplicación en espacio aislado que se creó mediante la AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) sobrecarga del método, a menos que los permisos que se conceden al dominio de aplicación sean equivalentes a plena confianza.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.

Se aplica a