SecurityManager.GetStandardSandbox(Evidence) Метод

Определение

Получает набор разрешений, который можно безопасно выдать приложению, имеющему предоставленное свидетельство.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

Параметры

evidence
Evidence

Свидетельство узла, которое нужно сопоставить с набором разрешений.The host evidence to match to a permission set.

Возвращаемое значение

Набор разрешений, который используется для выдачи приложению, имеющему предоставленное свидетельство.A permission set that can be used as a grant set for the application that has the provided evidence.

Исключения

Свойство evidence имеет значение null.evidence is null.

Примеры

В следующем примере показано, как использовать метод GetStandardSandbox для получения набора разрешений для изолированного приложения.The following example shows how to use the GetStandardSandbox method to obtain the permission set for a sandboxed application. Дополнительные сведения о запуске приложения в песочнице см. в разделе инструкции. Запуск частично доверенного кода в песочнице.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

Комментарии

Примечание

В .NET Framework 4.NET Framework 4свидетельство узла в evidence должно содержать System.Security.Policy.Zone свидетельство.In the .NET Framework 4.NET Framework 4, the host evidence in evidence must contain System.Security.Policy.Zone evidence.

В следующей таблице показаны наборы разрешений, возвращаемые для каждой зоны.The following table shows the permission sets that are returned for each zone.

ЗонаZone Набор разрешенийPermission set
MyComputer FullTrust
Intranet LocalIntranet
Trusted Internet
Internet Internet
Untrusted НетNone
NoZone НетNone

Другие свидетельства, например Url или Site, могут быть рассмотрены.Other evidence, such as Url or Site, may be considered.

Возвращенный набор разрешений может использоваться песочницей для запуска приложения.The returned permission set can be used by a sandbox to run the application. Обратите внимание, что этот метод не задает политику, но помогает основному приложению определить, приемлем ли набор разрешений, запрашиваемый приложением.Note that this method does not specify policy, but helps a host to determine whether the permission set requested by an application is reasonable. Этот метод можно использовать для отображения зоны в песочнице.This method can be used to map a zone to a sandbox.

Применяется к