SecurityManager.GetStandardSandbox(Evidence) Yöntem

Tanım

Sağlanan kanıtı içeren bir uygulamaya verilmesi güvenli bir izin kümesi alır.

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

Parametreler

evidence
Evidence

Bir izin kümesiyle eşleşecek konak kanıtı.

Döndürülenler

Sağlanan kanıtı içeren uygulama için bir izin kümesi olarak kullanılabilecek bir izin kümesi.

Özel durumlar

evidence, null değeridir.

Örnekler

Aşağıdaki örnekte, korumalı bir uygulama için izin kümesini almak için yönteminin nasıl kullanılacağı GetStandardSandbox gösterilmektedir. Korumalı alanda uygulama çalıştırma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Korumalı Alanda Kısmen Güvenilen Kod Çalıştırma.

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

Açıklamalar

Not

.NET Framework 4'te, içindeki evidence konak kanıtı kanıt içermelidirSystem.Security.Policy.Zone.

Aşağıdaki tabloda her bölge için döndürülen izin kümeleri gösterilmektedir.

Bölge İzin kümesi
MyComputer FullTrust
Intranet LocalIntranet
Trusted Internet
Internet Internet
Untrusted Hiçbiri
NoZone Hiçbiri

veya Sitegibi Url diğer kanıtlar göz önünde bulundurulabilir.

Döndürülen izin kümesi, uygulamayı çalıştırmak için korumalı alan tarafından kullanılabilir. Bu yöntemin ilke belirtmediğini, ancak bir konağın bir uygulama tarafından istenen izin kümesinin makul olup olmadığını belirlemesine yardımcı olduğunu unutmayın. Bu yöntem, bir bölgeyi korumalı alanla eşlemek için kullanılabilir.

Şunlara uygulanır