SecurityManager.GetStandardSandbox(Evidence) Método
Definição
Obtém um conjunto de permissões que é seguro conceder a um aplicativo que tem a evidência fornecida.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
Parâmetros
- evidence
- Evidence
A evidência de host a ser correspondida a um conjunto de permissões.The host evidence to match to a permission set.
Retornos
Um conjunto de permissões que pode ser usado como um conjunto de concessões para o aplicativo que tem a evidência fornecida.A permission set that can be used as a grant set for the application that has the provided evidence.
Exceções
evidence é null.evidence is null.
Exemplos
O exemplo a seguir mostra como usar o GetStandardSandbox método para obter o conjunto de permissões para um aplicativo em área restrita.The following example shows how to use the GetStandardSandbox method to obtain the permission set for a sandboxed application. Para obter mais informações sobre como executar um aplicativo em uma área restrita, consulte como: executar código parcialmente confiável em uma área restrita.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
Comentários
Observação
No .NET Framework 4, a evidência de host no evidence deve conter System.Security.Policy.Zone evidências.In the .NET Framework 4, the host evidence in evidence must contain System.Security.Policy.Zone evidence.
A tabela a seguir mostra os conjuntos de permissões que são retornados para cada zona.The following table shows the permission sets that are returned for each zone.
| ZonaZone | Conjunto de permissõesPermission set |
|---|---|
| MyComputer | FullTrust |
| Intranet | LocalIntranet |
| Trusted | Internet |
| Internet | Internet |
| Untrusted | NenhumNone |
| NoZone | NenhumNone |
Outras evidências, como Url ou Site , podem ser consideradas.Other evidence, such as Url or Site, may be considered.
O conjunto de permissões retornado pode ser usado por uma área restrita para executar o aplicativo.The returned permission set can be used by a sandbox to run the application. Observe que esse método não especifica a política, mas ajuda um host a determinar se o conjunto de permissões solicitado por um aplicativo é razoável.Note that this method does not specify policy, but helps a host to determine whether the permission set requested by an application is reasonable. Esse método pode ser usado para mapear uma zona para uma área restrita.This method can be used to map a zone to a sandbox.