SecurityManager.GetStandardSandbox(Evidence) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan set izin yang aman untuk diberikan ke aplikasi yang memiliki bukti yang disediakan.
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
Parameter
- evidence
- Evidence
Bukti host untuk dicocokkan dengan set izin.
Mengembalikan
Set izin yang dapat digunakan sebagai set hibah untuk aplikasi yang memiliki bukti yang disediakan.
Pengecualian
evidence
adalah null
.
Contoh
Contoh berikut menunjukkan cara menggunakan GetStandardSandbox metode untuk mendapatkan izin yang ditetapkan untuk aplikasi terkotakpasir. Untuk informasi selengkapnya tentang menjalankan aplikasi di kotak pasir, lihat Cara: Menjalankan Kode Tepercaya Sebagian di 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
Keterangan
Catatan
Dalam .NET Framework 4, bukti host di evidence
harus berisi System.Security.Policy.Zone bukti.
Tabel berikut ini memperlihatkan kumpulan izin yang dikembalikan untuk setiap zona.
Zona | Kumpulan izin |
---|---|
MyComputer | FullTrust |
Intranet | LocalIntranet |
Trusted | Internet |
Internet | Internet |
Untrusted | Tidak ada |
NoZone | Tidak ada |
Bukti lain, seperti Url atau Site, dapat dipertimbangkan.
Set izin yang dikembalikan dapat digunakan oleh kotak pasir untuk menjalankan aplikasi. Perhatikan bahwa metode ini tidak menentukan kebijakan, tetapi membantu host untuk menentukan apakah set izin yang diminta oleh aplikasi masuk akal. Metode ini dapat digunakan untuk memetakan zona ke kotak pasir.