SecurityManager.GetStandardSandbox(Evidence) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 bir 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.