Condividi tramite


SecurityManager.GetStandardSandbox(Evidence) Metodo

Definizione

Ottiene un set di autorizzazioni che può essere concesso senza alcun rischio di sicurezza a un'applicazione che dispone dell'evidenza fornita.

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

Parametri

evidence
Evidence

Evidenza host da confrontare con un set di autorizzazioni.

Restituisce

Set di autorizzazioni che può essere utilizzato come insieme delle autorizzazioni per l'applicazione che dispone dell'evidenza fornita.

Eccezioni

evidence è null.

Esempio

Nell'esempio seguente viene illustrato come usare il GetStandardSandbox metodo per ottenere il set di autorizzazioni per un'applicazione in modalità sandbox. Per altre informazioni sull'esecuzione di un'applicazione in una sandbox, vedere Procedura: Eseguire codice parzialmente attendibile in una 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

Commenti

Nota

In .NET Framework 4 l'evidenza host in evidence deve contenere System.Security.Policy.Zone prove.

La tabella seguente illustra i set di autorizzazioni restituiti per ogni zona.

Zona Set di autorizzazioni
MyComputer FullTrust
Intranet LocalIntranet
Trusted Internet
Internet Internet
Untrusted nessuno
NoZone nessuno

Altre prove, ad esempio Url o Site, possono essere considerate.

Il set di autorizzazioni restituito può essere usato da una sandbox per eseguire l'applicazione. Si noti che questo metodo non specifica i criteri, ma consente a un host di determinare se il set di autorizzazioni richiesto da un'applicazione è ragionevole. Questo metodo può essere usato per eseguire il mapping di una zona a una sandbox.

Si applica a