AppDomain::SetAppDomainPolicy Method
Note: This API is now obsolete.
Establishes the security policy level for this application domain.
Assembly: mscorlib (in mscorlib.dll)
[ObsoleteAttribute(L"AppDomain policy levels are obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")] public: virtual void SetAppDomainPolicy( PolicyLevel^ domainPolicy ) sealed
Parameters
- domainPolicy
- Type: System.Security.Policy::PolicyLevel
The security policy level.
Implements
_AppDomain::SetAppDomainPolicy(PolicyLevel)| Exception | Condition |
|---|---|
| ArgumentNullException | domainPolicy is nullptr. |
| 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 namespace System; using namespace System::Threading; using namespace System::Security; using namespace System::Security::Policy; using namespace System::Security::Permissions; int main() { // 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 = gcnew PermissionSet( PermissionState::None ); // Add permission to execute code to the permission set. permSet->AddPermission( gcnew SecurityPermission( SecurityPermissionFlag::Execution ) ); // Give the policy level's root code group a new policy statement based // on the new permission set. polLevel->RootCodeGroup->PolicyStatement = gcnew 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 ); }
- SecurityCriticalAttribute
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.