Export (0) Print
Expand All

AppDomain.SetAppDomainPolicy Method

Establishes the security policy level for this application domain.

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

public void SetAppDomainPolicy (
	PolicyLevel domainPolicy
)
public final void SetAppDomainPolicy (
	PolicyLevel domainPolicy
)
public final function SetAppDomainPolicy (
	domainPolicy : PolicyLevel
)
Not applicable.

Parameters

domainPolicy

The security policy level.

Exception typeCondition

ArgumentNullException

domainPolicy is a null reference (Nothing in Visual Basic).

PolicyException

The security policy level has already been set.

AppDomainUnloadedException

The operation is attempted on an unloaded application domain.

Call this method before an assembly is loaded into the AppDomain in order for the security policy to have effect.

The following example demonstrates how to use the SetAppDomainPolicy method to set the security policy level of an application domain.

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 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2015 Microsoft