SecurityManager.GetStandardSandbox(Evidence) メソッド

定義

指定された証拠を持つアプリケーションに安全に付与できるアクセス許可セットを取得します。Gets a permission set that is safe to grant to an application that has the provided evidence.

public:
 static System::Security::PermissionSet ^ GetStandardSandbox(System::Security::Policy::Evidence ^ evidence);
public static System.Security.PermissionSet GetStandardSandbox (System.Security.Policy.Evidence evidence);
static member GetStandardSandbox : System.Security.Policy.Evidence -> System.Security.PermissionSet
Public Shared Function GetStandardSandbox (evidence As Evidence) As PermissionSet

パラメーター

evidence
Evidence

アクセス許可セットと一致させるホスト証拠。The host evidence to match to a permission set.

戻り値

PermissionSet

指定された証拠を持つアプリケーションの許可セットとして使用できるアクセス許可セット。A permission set that can be used as a grant set for the application that has the provided evidence.

例外

evidencenull です。evidence is null.

次の例は、GetStandardSandbox メソッドを使用して、サンドボックス化されたアプリケーションのアクセス許可セットを取得する方法を示しています。The following example shows how to use the GetStandardSandbox method to obtain the permission set for a sandboxed application. サンドボックスでアプリケーションを実行する方法の詳細については、「方法: サンドボックスで部分信頼コードを実行する」を参照してください。For more information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

using System;
using System.Collections;
using System.Diagnostics;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Reflection;
using System.IO;

namespace SimpleSandboxing
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create the permission set to grant to other assemblies.
            // In this case we are granting the permissions found in the LocalIntranet zone.
            Evidence e = new Evidence();
            e.AddHostEvidence(new Zone(SecurityZone.Intranet));
            PermissionSet pset = SecurityManager.GetStandardSandbox(e);

            AppDomainSetup ads = new AppDomainSetup();
            // Identify the folder to use for the sandbox.
            ads.ApplicationBase = "C:\\Sandbox";
            // Copy the application to be executed to the sandbox.
            Directory.CreateDirectory("C:\\Sandbox");
            File.Copy("..\\..\\..\\HelloWorld\\bin\\debug\\HelloWorld.exe", "C:\\sandbox\\HelloWorld.exe", true);

            // Create the sandboxed domain.
            AppDomain sandbox = AppDomain.CreateDomain(
               "Sandboxed Domain",
               e,
               ads,
               pset,
               null);
            sandbox.ExecuteAssemblyByName("HelloWorld");
        }
    }
}

Imports System.Collections
Imports System.Diagnostics
Imports System.Security
Imports System.Security.Permissions
Imports System.Security.Policy
Imports System.Reflection
Imports System.IO



Class Program
    
    Shared Sub Main(ByVal args() As String) 
        ' Create the permission set to grant to other assemblies.
        ' In this case we are granting the permissions found in the LocalIntranet zone.
        Dim e As New Evidence()
        e.AddHostEvidence(New Zone(SecurityZone.Intranet))
        Dim pset As PermissionSet = SecurityManager.GetStandardSandbox(e)
        
        Dim ads As New AppDomainSetup()
        ' Identify the folder to use for the sandbox.
        ads.ApplicationBase = "C:\Sandbox"
        ' Copy the application to be executed to the sandbox.
        Directory.CreateDirectory("C:\Sandbox")
        File.Copy("..\..\..\HelloWorld\bin\debug\HelloWorld.exe", "C:\sandbox\HelloWorld.exe", True)
        
        ' Create the sandboxed domain.
        Dim sandbox As AppDomain = AppDomain.CreateDomain("Sandboxed Domain", e, ads, pset, Nothing)
        sandbox.ExecuteAssemblyByName("HelloWorld")
    
    End Sub
End Class

注釈

注意

.NET Framework 4.NET Framework 4では、evidence のホスト証拠に System.Security.Policy.Zone 証拠が含まれている必要があります。In the .NET Framework 4.NET Framework 4, the host evidence in evidence must contain System.Security.Policy.Zone evidence.

次の表は、各ゾーンに対して返されるアクセス許可セットを示しています。The following table shows the permission sets that are returned for each zone.

ゾーンZone 権限セットPermission set
MyComputer FullTrust
Intranet LocalIntranet
Trusted Internet
Internet Internet
Untrusted なしNone
NoZone なしNone

その他の証拠 (UrlSiteなど) を考慮することもできます。Other evidence, such as Url or Site, may be considered.

返されたアクセス許可セットは、サンドボックスでアプリケーションを実行するために使用できます。The returned permission set can be used by a sandbox to run the application. この方法ではポリシーが指定されないことに注意してくださいが、アプリケーションによって要求されたアクセス許可セットが妥当であるかどうかをホストが判断するのに役立ちます。Note that this method does not specify policy, but helps a host to determine whether the permission set requested by an application is reasonable. このメソッドは、ゾーンをサンドボックスにマップするために使用できます。This method can be used to map a zone to a sandbox.

適用対象