SecurityManager.GetStandardSandbox(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
Public Shared Function GetStandardSandbox (evidence As Evidence) As PermissionSet
Параметры
- evidence
- Evidence
Свидетельство узла, которое нужно сопоставить с набором разрешений.
Возвращаемое значение
Набор разрешений, который используется для выдачи приложению, имеющему предоставленное свидетельство.
Исключения
evidence
имеет значение null
.
Примеры
В следующем примере показано, как использовать GetStandardSandbox метод для получения набора разрешений для изолированного приложения. Дополнительные сведения о запуске приложения в песочнице см. в разделе Практическое руководство. Выполнение частично доверенного кода в песочнице.
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 ведущее свидетельство в evidence
должно содержать System.Security.Policy.Zone доказательства.
В следующей таблице показаны наборы разрешений, возвращаемые для каждой зоны.
Зона | Набор разрешений |
---|---|
MyComputer | FullTrust |
Intranet | LocalIntranet |
Trusted | Internet |
Internet | Internet |
Untrusted | None |
NoZone | None |
Можно рассмотреть другие доказательства, например Url или Site.
Возвращенный набор разрешений может использоваться песочницей для запуска приложения. Обратите внимание, что этот метод не задает политику, но помогает узлу определить, является ли набор разрешений, запрошенный приложением, разумным. Этот метод можно использовать для сопоставления зоны с песочницей.