SecurityManager.GetStandardSandbox(Evidence) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient un jeu d'autorisations qui peut être accordé en toute sécurité à une application qui dispose de la preuve fournie.
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
Paramètres
- evidence
- Evidence
Preuve hôte à associer à un jeu d'autorisations.
Retours
Jeu d'autorisations qui peut être utilisé comme un jeu accordé pour l'application qui dispose de la preuve fournie.
Exceptions
evidence
a la valeur null
.
Exemples
L’exemple suivant montre comment utiliser la GetStandardSandbox méthode pour obtenir le jeu d’autorisations pour une application en bac à sable (sandbox). Pour plus d’informations sur l’exécution d’une application dans un bac à sable, consultez Guide pratique pour exécuter du code partiellement approuvé dans un bac à sable.
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
Remarques
Notes
Dans le .NET Framework 4, la preuve de l’hôte dans evidence
doit contenir des System.Security.Policy.Zone preuves.
Le tableau suivant montre les jeux d’autorisations retournés pour chaque zone.
Zone | Jeu d’autorisations |
---|---|
MyComputer | FullTrust |
Intranet | LocalIntranet |
Trusted | Internet |
Internet | Internet |
Untrusted | None |
NoZone | None |
D’autres preuves, telles que Url ou Site, peuvent être prises en compte.
Le jeu d’autorisations retourné peut être utilisé par un bac à sable pour exécuter l’application. Notez que cette méthode ne spécifie pas de stratégie, mais aide un hôte à déterminer si le jeu d’autorisations demandé par une application est raisonnable. Cette méthode peut être utilisée pour mapper une zone à un bac à sable.