AppDomain.IsFullyTrusted プロパティ

定義

現在のアプリケーション ドメインに読み込まれたアセンブリが、完全に信頼された状態で実行されるかどうかを示す値を取得します。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

プロパティ値

Boolean

現在のアプリケーション ドメインに読み込まれたアセンブリが、完全に信頼された状態で実行される場合は true。それ以外の場合は falsetrue if assemblies that are loaded into the current application domain execute with full trust; otherwise, false.

次の例は、 IsFullyTrusted Assembly.IsFullyTrusted 完全に信頼され、部分的に信頼されたアプリケーションドメインを持つプロパティとプロパティを示しています。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. 部分的に信頼されたアプリケーションドメインは、メソッドのオーバーロードを使用して作成され AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) ます。The partially trusted application domain is created by using the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method overload.

この例では Worker 、から派生したクラスを使用し MarshalByRefObject て、アプリケーションドメインの境界を越えてマーシャリングすることができます。The example uses a Worker class that derives from MarshalByRefObject, so it can be marshaled across application domain boundaries. この例では、 Worker 既定のアプリケーションドメインにオブジェクトを作成します。The example creates a Worker object in the default application domain. 次に、メソッドを呼び出して、 TestIsFullyTrusted アプリケーションドメインとアプリケーションドメインに読み込まれる2つのアセンブリのプロパティ値を表示します。 mscorlib は、.NET Framework の一部であり、アセンブリの例です。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.

この例では、サンドボックス化された Worker アプリケーションドメインに別のオブジェクトを作成し、メソッドを再度呼び出し TestIsFullyTrusted ます。The example creates another Worker object in a sandboxed application domain and again calls the TestIsFullyTrusted method. Mscorlib は、部分的に信頼されたアプリケーションドメインであっても、常に信頼されていますが、この例のアセンブリは部分的に信頼されています。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
' 

注釈

このメソッドは true 、デスクトップで実行されるアプリケーションの既定のアプリケーションドメインに対して常にを返します。This method always returns true for the default application domain of an application that runs on the desktop. この false AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) メソッドは、アプリケーションドメインに付与されたアクセス許可が完全信頼と同等である場合を除き、メソッドオーバーロードを使用して作成されたサンドボックスアプリケーションドメインに対してを返します。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.

適用対象