SecurityManager.GetStandardSandbox(Evidence) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された証拠を持つアプリケーションに安全に付与できるアクセス許可セットを取得します。
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
アクセス許可セットと一致させるホスト証拠。
戻り値
指定された証拠を持つアプリケーションの許可セットとして使用できるアクセス許可セット。
例外
evidence
が null
です。
例
次の例は、 メソッドを GetStandardSandbox 使用して、サンドボックス アプリケーションのアクセス許可セットを取得する方法を示しています。 サンドボックスでアプリケーションを実行する方法の詳細については、「 方法: サンドボックスで部分的に信頼されたコードを実行する」を参照してください。
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 では、 のホスト証拠にevidence
証拠が含まれているSystem.Security.Policy.Zone必要があります。
次の表は、各ゾーンに対して返されるアクセス許可セットを示しています。
ゾーン | アクセス許可セット |
---|---|
MyComputer | FullTrust |
Intranet | LocalIntranet |
Trusted | Internet |
Internet | Internet |
Untrusted | なし |
NoZone | なし |
や SiteなどのUrlその他の証拠が考慮される場合があります。
返されたアクセス許可セットは、サンドボックスでアプリケーションを実行するために使用できます。 このメソッドはポリシーを指定しませんが、アプリケーションによって要求されたアクセス許可セットが妥当かどうかをホストが判断するのに役立ちます。 このメソッドを使用して、ゾーンをサンドボックスにマップできます。
適用対象
.NET