AppDomain.IsFullyTrusted Property

Gets a value that indicates whether assemblies that are loaded into the current application domain execute with full trust.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public ReadOnly Property IsFullyTrusted As Boolean

Property Value

Type: System.Boolean
true if assemblies that are loaded into the current application domain execute with full trust; otherwise, false.

This method always returns true for the default application domain of an application that runs on the desktop. 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.

The following example demonstrates the IsFullyTrusted property and the Assembly.IsFullyTrusted property with fully trusted and partially trusted application domains. The fully trusted application domain is the default application domain for the application. The partially trusted application domain is created by using the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName()) method overload.

The example uses a Worker class that derives from MarshalByRefObject, so it can be marshaled across application domain boundaries. The example creates a Worker object in the default application domain. 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. The application domain is fully trusted, so both assemblies are fully trusted.

The example creates another Worker object in a sandboxed application domain and again calls the TestIsFullyTrusted method. Mscorlib is always trusted, even in a partially trusted application domain, but the example assembly is partially trusted.

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 
' 

.NET Framework

Supported in: 4.5, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft