Compartir vía


SecurityManager.GetStandardSandbox(Evidence) Método

Definición

Obtiene un conjunto de permisos que se puede conceder de forma segura a una aplicación que tiene la evidencia especificada.

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

Evidencia de host que debe corresponderse con un conjunto de permisos.

Devoluciones

Conjunto de permisos que se puede utilizar como conjunto de permisos concedidos para la aplicación que tiene la evidencia especificada.

Excepciones

evidence es null.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el GetStandardSandbox método para obtener el conjunto de permisos para una aplicación de espacio aislado. Para obtener más información sobre cómo ejecutar una aplicación en un espacio aislado, vea Cómo: Ejecutar código de confianza parcial en un espacio aislado.

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

Comentarios

Nota

En .NET Framework 4, la evidencia de host de evidence debe contener System.Security.Policy.Zone evidencia.

En la tabla siguiente se muestran los conjuntos de permisos que se devuelven para cada zona.

Zona Conjunto de permisos
MyComputer FullTrust
Intranet LocalIntranet
Trusted Internet
Internet Internet
Untrusted None
NoZone None

Otras pruebas, como Url o Site, se pueden considerar.

Un espacio aislado puede usar el conjunto de permisos devuelto para ejecutar la aplicación. Tenga en cuenta que este método no especifica la directiva, pero ayuda a un host a determinar si el conjunto de permisos solicitado por una aplicación es razonable. Este método se puede usar para asignar una zona a un espacio aislado.

Se aplica a