Udostępnij za pośrednictwem


SecurityManager.GetStandardSandbox(Evidence) Metoda

Definicja

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ę.

Dotyczy