SecurityManager.GetStandardSandbox(Evidence) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera zestaw uprawnień, który jest bezpieczny do udzielenia aplikacji, która ma dostarczone dowody.
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
Parametry
- evidence
- Evidence
Dowody hosta pasujące do zestawu uprawnień.
Zwraca
Zestaw uprawnień, który może być używany jako zestaw dotacji dla aplikacji, która ma dostarczone dowody.
Wyjątki
evidence
to null
.
Przykłady
W poniższym przykładzie pokazano, jak za pomocą GetStandardSandbox metody uzyskać zestaw uprawnień dla aplikacji w trybie piaskownicy. Aby uzyskać więcej informacji na temat uruchamiania aplikacji w piaskownicy, zobacz Instrukcje: uruchamianie częściowo zaufanego kodu w piaskownicy.
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
Uwagi
Uwaga
W .NET Framework 4 dowody hosta muszą zawierać System.Security.Policy.Zone dowodyevidence
.
W poniższej tabeli przedstawiono zestawy uprawnień zwracane dla każdej strefy.
Strefa | Zestaw uprawnień |
---|---|
MyComputer | FullTrust |
Intranet | LocalIntranet |
Trusted | Internet |
Internet | Internet |
Untrusted | Brak |
NoZone | Brak |
Inne dowody, takie jak Url lub Site, mogą być brane pod uwagę.
Zwrócony zestaw uprawnień może być używany przez piaskownicę do uruchamiania aplikacji. Należy pamiętać, że ta metoda nie określa zasad, ale pomaga hostowi określić, czy zestaw uprawnień żądany przez aplikację jest rozsądny. Ta metoda może służyć do mapowania strefy na piaskownicę.