(0) exportieren Drucken
Alle erweitern

AppDomain.SetAppDomainPolicy-Methode

Aktualisiert: November 2007

Legt die Sicherheitsrichtlinienebene für diese Anwendungsdomäne fest.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[SecurityPermissionAttribute(SecurityAction.LinkDemand, ControlDomainPolicy = true)]
public void SetAppDomainPolicy(
	PolicyLevel domainPolicy
)
/** @attribute SecurityPermissionAttribute(SecurityAction.LinkDemand, ControlDomainPolicy = true) */
public final void SetAppDomainPolicy(
	PolicyLevel domainPolicy
)
public final function SetAppDomainPolicy(
	domainPolicy : PolicyLevel
)

Parameter

domainPolicy
Typ: System.Security.Policy.PolicyLevel
Die Sicherheitsrichtlinienebene.

Implementiert

_AppDomain.SetAppDomainPolicy(PolicyLevel)

AusnahmeBedingung
ArgumentNullException

domainPolicy ist null.

PolicyException

Die Sicherheitsrichtlinienebene wurde bereits festgelegt.

AppDomainUnloadedException

Es wurde versucht, die Operation für eine entladene Anwendungsdomäne auszuführen.

Rufen Sie diese Methode vor dem Laden einer Assembly in die AppDomain auf, damit die Sicherheitsrichtlinien wirksam sind.

Im folgenden Beispiel wird die Verwendung der SetAppDomainPolicy-Methode zum Festlegen der Sicherheitsrichtlinienebene einer Anwendungsdomäne veranschaulicht.

using System;
using System.Threading;
using System.Security;
using System.Security.Policy;
using System.Security.Permissions;

namespace AppDomainSnippets
{
	class ADSetAppDomainPolicy
	{
		static void Main(string[] args)
		{
			// Create a new application domain.
			AppDomain domain = System.AppDomain.CreateDomain("MyDomain");
			
			// Create a new AppDomain PolicyLevel.
			PolicyLevel polLevel = PolicyLevel.CreateAppDomainLevel();
			// Create a new, empty permission set.
			PermissionSet permSet = new PermissionSet(PermissionState.None);
			// Add permission to execute code to the permission set.
			permSet.AddPermission
				(new SecurityPermission(SecurityPermissionFlag.Execution));
			// Give the policy level's root code group a new policy statement based
			// on the new permission set.
			polLevel.RootCodeGroup.PolicyStatement = new PolicyStatement(permSet);
			// Give the new policy level to the application domain.
			domain.SetAppDomainPolicy(polLevel);
			
			// Try to execute the assembly.
			try
			{
				// This will throw a PolicyException if the executable tries to
				// access any resources like file I/O or tries to create a window.
				domain.ExecuteAssembly("Assemblies\\MyWindowsExe.exe");
			}
			catch(PolicyException e)
			{
				Console.WriteLine("PolicyException: {0}", e.Message);
			}

			AppDomain.Unload(domain);
		}
	}
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft