SecurityPermissionAttribute 构造函数
用指定的 SecurityAction 初始化 SecurityPermissionAttribute 类的新实例。
**命名空间:**System.Security.Permissions
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Sub New ( _
action As SecurityAction _
)
用法
Dim action As SecurityAction
Dim instance As New SecurityPermissionAttribute(action)
public SecurityPermissionAttribute (
SecurityAction action
)
public:
SecurityPermissionAttribute (
SecurityAction action
)
public SecurityPermissionAttribute (
SecurityAction action
)
public function SecurityPermissionAttribute (
action : SecurityAction
)
参数
- action
SecurityAction 值之一。
示例
下面的代码示例演示如何使用 SecurityPermissionAttribute 构造函数创建用于拒绝和要求安全权限的 SecurityPermissionAttribute 类的实例。
' This sample demonstrates the use of the SecurityPermissionAttribute.
Imports System
Imports System.Security.Permissions
Imports System.Security
Imports Microsoft.VisualBasic
Class [MyClass]
Public Shared Sub PermissionDemo()
Try
DenySecurityPermissions()
DenyAllSecurityPermissions()
DoNotDenySecurityPermissions()
Catch e As Exception
Console.WriteLine(e.Message.ToString())
End Try
End Sub 'PermissionDemo
' This method demonstrates the use of the SecurityPermissionAttribute to deny individual security permissions.
' Set the Assertion,UnmanagedCode, ControlAppDomain, ControlDomainPolicy, ontrolEvidence,
' ControlPolicy, ControlPrincipal, ControlThread, Execution, Flags, Infrastructure,
' RemotingConfiguration, SerializationFormatter, and SkipVerification properties.
<SecurityPermissionAttribute(SecurityAction.Deny, Assertion:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, ControlAppDomain:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, ControlDomainPolicy:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, ControlEvidence:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, ControlPolicy:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, ControlPrincipal:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, ControlThread:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, Execution:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, Flags:=SecurityPermissionFlag.NoFlags), _
SecurityPermissionAttribute(SecurityAction.Deny, Infrastructure:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, RemotingConfiguration:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, SerializationFormatter:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, SkipVerification:=True), _
SecurityPermissionAttribute(SecurityAction.Deny, UnmanagedCode:=True)> _
Public Shared Sub DenySecurityPermissions()
Console.WriteLine("Executing DenySecurityPermissions.")
Console.WriteLine("Denied all permissions individually.")
TestSecurityPermissions()
End Sub 'DenySecurityPermissions
' This method demonstrates the use of SecurityPermissionFlag.AllFlags to deny all security permissions.
<SecurityPermissionAttribute(SecurityAction.Deny, Flags:=SecurityPermissionFlag.AllFlags)> _
Public Shared Sub DenyAllSecurityPermissions()
Console.WriteLine(ControlChars.Lf & "Executing DenyAllSecurityPermissions.")
Console.WriteLine("Denied all permissions using SecurityPermissionFlag.AllFlags.")
TestSecurityPermissions()
End Sub 'DenyAllSecurityPermissions
' This method demonstrates the effect of not denying security permissions.
Public Shared Sub DoNotDenySecurityPermissions()
Console.WriteLine(ControlChars.Lf & "Executing DoNotDenySecurityPermissions.")
Console.WriteLine("No permissions have been denied.")
DemandSecurityPermissions()
End Sub 'DoNotDenySecurityPermissions
Public Shared Sub TestSecurityPermissions()
Console.WriteLine(ControlChars.Lf & "Executing TestSecurityPermissions." & ControlChars.Lf)
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.Assertion)
Console.WriteLine("Demanding SecurityPermissionFlag.Assertion")
' This demand should cause an exception.
sp.Demand()
' The TestFailed method is called if an exception is not thrown.
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.Assertion failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlAppDomain)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlAppDomain")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlAppDomain failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlDomainPolicy)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlDomainPolicy")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlDomainPolicy failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlEvidence)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlEvidence")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlEvidence failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlPolicy)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPolicy")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlPolicy failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlPrincipal)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPrincipal")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlPrincipal failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlThread)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlThread")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlThread failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.Execution)
Console.WriteLine("Demanding SecurityPermissionFlag.Execution")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.Execution failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.Infrastructure)
Console.WriteLine("Demanding SecurityPermissionFlag.Infrastructure")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.Infrastructure failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.RemotingConfiguration)
Console.WriteLine("Demanding SecurityPermissionFlag.RemotingConfiguration")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.RemotingConfiguration failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.SerializationFormatter)
Console.WriteLine("Demanding SecurityPermissionFlag.SerializationFormatter")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.SerializationFormatter failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.SkipVerification)
Console.WriteLine("Demanding SecurityPermissionFlag.SkipVerification")
sp.Demand()
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.SkipVerification failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.UnmanagedCode)
Console.WriteLine("Demanding SecurityPermissionFlag.UnmanagedCode")
' This demand should cause an exception.
sp.Demand()
' The TestFailed method is called if an exception is not thrown.
TestFailed()
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.UnmanagedCode failed: " & e.Message))
End Try
End Sub 'TestSecurityPermissions
Public Shared Sub TestFailed()
Console.WriteLine("In TestFailed method.")
Console.WriteLine("Throwing an exception.")
Throw New Exception()
End Sub 'TestFailed
Public Shared Sub DemandSecurityPermissions()
Console.WriteLine(ControlChars.Lf & "Executing DemandSecurityPermissions." & ControlChars.Lf)
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.Assertion)
Console.WriteLine("Demanding SecurityPermissionFlag.Assertion")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.Assertion succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.Assertion failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlAppDomain)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlAppDomain")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.ControlAppDomain succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlAppDomain failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlDomainPolicy)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlDomainPolicy")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.ControlDomainPolicy succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlDomainPolicy failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlEvidence)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlEvidence")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.ControlEvidence succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlEvidence failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlPolicy)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPolicy")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPolicy succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlPolicy failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlPrincipal)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPrincipal")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPrincipal succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlPrincipal failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.ControlThread)
Console.WriteLine("Demanding SecurityPermissionFlag.ControlThread")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.ControlThread succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.ControlThread failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.Execution)
Console.WriteLine("Demanding SecurityPermissionFlag.Execution")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.Execution succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.Execution failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.Infrastructure)
Console.WriteLine("Demanding SecurityPermissionFlag.Infrastructure")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.Infrastructure succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.Infrastructure failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.RemotingConfiguration)
Console.WriteLine("Demanding SecurityPermissionFlag.RemotingConfiguration")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.RemotingConfiguration succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.RemotingConfiguration failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.SerializationFormatter)
Console.WriteLine("Demanding SecurityPermissionFlag.SerializationFormatter")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.SerializationFormatter succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.SerializationFormatter failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.SkipVerification)
Console.WriteLine("Demanding SecurityPermissionFlag.SkipVerification")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.SkipVerification succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.SkipVerification failed: " & e.Message))
End Try
Try
Dim sp As New SecurityPermission(SecurityPermissionFlag.UnmanagedCode)
Console.WriteLine("Demanding SecurityPermissionFlag.UnmanagedCode")
sp.Demand()
Console.WriteLine("Demand for SecurityPermissionFlag.UnmanagedCode succeeded.")
Catch e As Exception
Console.WriteLine(("Demand for SecurityPermissionFlag.UnmanagedCode failed: " & e.Message))
End Try
End Sub 'DemandSecurityPermissions
Overloads Shared Sub Main(ByVal args() As String)
PermissionDemo()
End Sub 'Main
End Class '[MyClass]
// This sample demonstrates the use of the SecurityPermissionAttribute.
using System;
using System.Security.Permissions;
using System.Security;
class MyClass
{
public static void PermissionDemo()
{
try
{
DenySecurityPermissions();
DenyAllSecurityPermissions();
DoNotDenySecurityPermissions();
}
catch (Exception e)
{
Console.WriteLine(e.Message.ToString());
}
}
// This method demonstrates the use of the SecurityPermissionAttribute to deny individual security permissions.
// Set the Assertion property.
[SecurityPermissionAttribute(SecurityAction.Deny, Assertion = true)]
// Set the ControlAppDomain property.
[SecurityPermissionAttribute(SecurityAction.Deny, ControlAppDomain = true)]
// Set the ControlDomainPolicy property.
[SecurityPermissionAttribute(SecurityAction.Deny, ControlDomainPolicy = true)]
// Set the ControlEvidence property.
[SecurityPermissionAttribute(SecurityAction.Deny, ControlEvidence = true)]
// Set the ControlPolicy property.
[SecurityPermissionAttribute(SecurityAction.Deny, ControlPolicy = true)]
// Set the ControlPrincipal property.
[SecurityPermissionAttribute(SecurityAction.Deny, ControlPrincipal = true)]
// Set the ControlThread property.
[SecurityPermissionAttribute(SecurityAction.Deny, ControlThread = true)]
// Set the Execution property.
[SecurityPermissionAttribute(SecurityAction.Deny, Execution = true)]
// Set the Flags property.
[SecurityPermissionAttribute(SecurityAction.Deny, Flags = SecurityPermissionFlag.NoFlags)]
// Set the Infrastructure property.
[SecurityPermissionAttribute(SecurityAction.Deny, Infrastructure = true)]
// Set the RemotingConfiguration property.
[SecurityPermissionAttribute(SecurityAction.Deny, RemotingConfiguration = true)]
// Set the SerializationFormatter property.
[SecurityPermissionAttribute(SecurityAction.Deny, SerializationFormatter = true)]
// Set the SkipVerification property.
[SecurityPermissionAttribute(SecurityAction.Deny, SkipVerification = true)]
// Set the UnmanagedCode property.
[SecurityPermissionAttribute(SecurityAction.Deny, UnmanagedCode = true)]
public static void DenySecurityPermissions()
{
Console.WriteLine("Executing DenySecurityPermissions.");
Console.WriteLine("Denied all permissions individually.");
TestSecurityPermissions();
}
// This method demonstrates the use of SecurityPermissionFlag.AllFlags to deny all security permissions.
[SecurityPermissionAttribute(SecurityAction.Deny, Flags = SecurityPermissionFlag.AllFlags)]
public static void DenyAllSecurityPermissions()
{
Console.WriteLine("\nExecuting DenyAllSecurityPermissions.");
Console.WriteLine("Denied all permissions using SecurityPermissionFlag.AllFlags.");
TestSecurityPermissions();
}
// This method demonstrates the effect of not denying security permissions.
public static void DoNotDenySecurityPermissions()
{
Console.WriteLine("\nExecuting DoNotDenySecurityPermissions.");
Console.WriteLine("No permissions have been denied.");
DemandSecurityPermissions();
}
public static void TestSecurityPermissions()
{
Console.WriteLine("\nExecuting TestSecurityPermissions.\n");
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Assertion);
Console.WriteLine("Demanding SecurityPermissionFlag.Assertion");
// This demand should cause an exception.
sp.Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.Assertion failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlAppDomain);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlAppDomain");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlAppDomain failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlDomainPolicy);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlDomainPolicy");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlDomainPolicy failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlEvidence);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlEvidence");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlEvidence failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlPolicy);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPolicy");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPolicy failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlPrincipal);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPrincipal");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPrincipal failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlThread);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlThread");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlThread failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Execution);
Console.WriteLine("Demanding SecurityPermissionFlag.Execution");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.Execution failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Infrastructure);
Console.WriteLine("Demanding SecurityPermissionFlag.Infrastructure");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.Infrastructure failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.RemotingConfiguration);
Console.WriteLine("Demanding SecurityPermissionFlag.RemotingConfiguration");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.RemotingConfiguration failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.SerializationFormatter);
Console.WriteLine("Demanding SecurityPermissionFlag.SerializationFormatter");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.SerializationFormatter failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.SkipVerification);
Console.WriteLine("Demanding SecurityPermissionFlag.SkipVerification");
sp.Demand();
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.SkipVerification failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
Console.WriteLine("Demanding SecurityPermissionFlag.UnmanagedCode");
// This demand should cause an exception.
sp.Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.UnmanagedCode failed: " + e.Message);
}
}
public static void TestFailed()
{
Console.WriteLine("In TestFailed method.");
Console.WriteLine("Throwing an exception.");
throw new Exception();
}
public static void DemandSecurityPermissions()
{
Console.WriteLine("\nExecuting DemandSecurityPermissions.\n");
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Assertion);
Console.WriteLine("Demanding SecurityPermissionFlag.Assertion");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.Assertion succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.Assertion failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlAppDomain);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlAppDomain");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.ControlAppDomain succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlAppDomain failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlDomainPolicy);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlDomainPolicy");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.ControlDomainPolicy succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlDomainPolicy failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlEvidence);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlEvidence");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.ControlEvidence succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlEvidence failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlPolicy);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPolicy");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPolicy succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPolicy failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlPrincipal);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlPrincipal");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPrincipal succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlPrincipal failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlThread);
Console.WriteLine("Demanding SecurityPermissionFlag.ControlThread");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.ControlThread succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.ControlThread failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Execution);
Console.WriteLine("Demanding SecurityPermissionFlag.Execution");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.Execution succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.Execution failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Infrastructure);
Console.WriteLine("Demanding SecurityPermissionFlag.Infrastructure");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.Infrastructure succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.Infrastructure failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.RemotingConfiguration);
Console.WriteLine("Demanding SecurityPermissionFlag.RemotingConfiguration");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.RemotingConfiguration succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.RemotingConfiguration failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.SerializationFormatter);
Console.WriteLine("Demanding SecurityPermissionFlag.SerializationFormatter");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.SerializationFormatter succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.SerializationFormatter failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.SkipVerification);
Console.WriteLine("Demanding SecurityPermissionFlag.SkipVerification");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.SkipVerification succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.SkipVerification failed: " + e.Message);
}
try
{
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
Console.WriteLine("Demanding SecurityPermissionFlag.UnmanagedCode");
sp.Demand();
Console.WriteLine("Demand for SecurityPermissionFlag.UnmanagedCode succeeded.");
}
catch (Exception e)
{
Console.WriteLine("Demand for SecurityPermissionFlag.UnmanagedCode failed: " + e.Message);
}
}
static void Main(string[] args)
{
PermissionDemo();
}
}
// This sample demonstrates the use of the SecurityPermissionAttribute.
using namespace System;
using namespace System::Security::Permissions;
using namespace System::Security;
class MyClass
{
public:
static void PermissionDemo()
{
try
{
DenySecurityPermissions();
DenyAllSecurityPermissions();
DoNotDenySecurityPermissions();
}
catch ( Exception^ e )
{
Console::WriteLine( e->Message );
}
}
// This method demonstrates the use of the SecurityPermissionAttribute to deny individual security permissions.
// Set the Assertion property.
[SecurityPermissionAttribute(SecurityAction::Deny,Assertion=true)]
// Set the ControlAppDomain property.
[SecurityPermissionAttribute(SecurityAction::Deny,ControlAppDomain=true)]
// Set the ControlDomainPolicy property.
[SecurityPermissionAttribute(SecurityAction::Deny,ControlDomainPolicy=true)]
[SecurityPermissionAttribute(SecurityAction::Deny,ControlEvidence=true)]
// Set the ControlEvidence property.
[SecurityPermissionAttribute(SecurityAction::Deny,ControlPolicy=true)]
// Set the ControlPolicy property.
[SecurityPermissionAttribute(SecurityAction::Deny,ControlPrincipal=true)]
// Set the ControlPrincipal property.
// Set the ControlThread property.
[SecurityPermissionAttribute(SecurityAction::Deny,ControlThread=true)]
// Set the Execution property.
[SecurityPermissionAttribute(SecurityAction::Deny,Execution=true)]
// Set the Flags property.
[SecurityPermissionAttribute(SecurityAction::Deny,Flags=SecurityPermissionFlag::NoFlags)]
// Set the Infrastructure property.
[SecurityPermissionAttribute(SecurityAction::Deny,Infrastructure=true)]
// Set the RemotingConfiguration property.
[SecurityPermissionAttribute(SecurityAction::Deny,RemotingConfiguration=true)]
// Set the SerializationFormatter property.
[SecurityPermissionAttribute(SecurityAction::Deny,SerializationFormatter=true)]
// Set the SkipVerification property.
[SecurityPermissionAttribute(SecurityAction::Deny,SkipVerification=true)]
// Set the UnmanagedCode property.
[SecurityPermissionAttribute(SecurityAction::Deny,UnmanagedCode=true)]
static void DenySecurityPermissions()
{
Console::WriteLine( "Executing DenySecurityPermissions." );
Console::WriteLine( "Denied all permissions individually." );
TestSecurityPermissions();
}
// This method demonstrates the use of SecurityPermissionFlag::AllFlags to deny all security permissions.
[SecurityPermissionAttribute(SecurityAction::Deny,Flags=SecurityPermissionFlag::AllFlags)]
static void DenyAllSecurityPermissions()
{
Console::WriteLine( "\nExecuting DenyAllSecurityPermissions." );
Console::WriteLine( "Denied all permissions using SecurityPermissionFlag::AllFlags." );
TestSecurityPermissions();
}
// This method demonstrates the effect of not denying security permissions.
static void DoNotDenySecurityPermissions()
{
Console::WriteLine( "\nExecuting DoNotDenySecurityPermissions." );
Console::WriteLine( "No permissions have been denied." );
DemandSecurityPermissions();
}
static void TestSecurityPermissions()
{
Console::WriteLine( "\nExecuting TestSecurityPermissions.\n" );
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::Assertion );
Console::WriteLine( "Demanding SecurityPermissionFlag::Assertion" );
// This demand should cause an exception.
sp->Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::Assertion failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlAppDomain );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlAppDomain" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlAppDomain failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlDomainPolicy );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlDomainPolicy" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlDomainPolicy failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlEvidence );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlEvidence" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlEvidence failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlPolicy );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlPolicy" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlPolicy failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlPrincipal );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlPrincipal" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlPrincipal failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlThread );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlThread" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlThread failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::Execution );
Console::WriteLine( "Demanding SecurityPermissionFlag::Execution" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::Execution failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::Infrastructure );
Console::WriteLine( "Demanding SecurityPermissionFlag::Infrastructure" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::Infrastructure failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::RemotingConfiguration );
Console::WriteLine( "Demanding SecurityPermissionFlag::RemotingConfiguration" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::RemotingConfiguration failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::SerializationFormatter );
Console::WriteLine( "Demanding SecurityPermissionFlag::SerializationFormatter" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::SerializationFormatter failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::SkipVerification );
Console::WriteLine( "Demanding SecurityPermissionFlag::SkipVerification" );
sp->Demand();
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::SkipVerification failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::UnmanagedCode );
Console::WriteLine( "Demanding SecurityPermissionFlag::UnmanagedCode" );
// This demand should cause an exception.
sp->Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::UnmanagedCode failed: {0}", e->Message );
}
}
static void TestFailed()
{
Console::WriteLine( "In TestFailed method." );
Console::WriteLine( "Throwing an exception." );
throw gcnew Exception;
}
static void DemandSecurityPermissions()
{
Console::WriteLine( "\nExecuting DemandSecurityPermissions.\n" );
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::Assertion );
Console::WriteLine( "Demanding SecurityPermissionFlag::Assertion" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::Assertion succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::Assertion failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlAppDomain );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlAppDomain" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlAppDomain succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlAppDomain failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlDomainPolicy );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlDomainPolicy" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlDomainPolicy succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlDomainPolicy failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlEvidence );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlEvidence" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlEvidence succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlEvidence failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlPolicy );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlPolicy" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlPolicy succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlPolicy failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlPrincipal );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlPrincipal" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlPrincipal succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlPrincipal failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::ControlThread );
Console::WriteLine( "Demanding SecurityPermissionFlag::ControlThread" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlThread succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::ControlThread failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::Execution );
Console::WriteLine( "Demanding SecurityPermissionFlag::Execution" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::Execution succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::Execution failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::Infrastructure );
Console::WriteLine( "Demanding SecurityPermissionFlag::Infrastructure" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::Infrastructure succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::Infrastructure failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::RemotingConfiguration );
Console::WriteLine( "Demanding SecurityPermissionFlag::RemotingConfiguration" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::RemotingConfiguration succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::RemotingConfiguration failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::SerializationFormatter );
Console::WriteLine( "Demanding SecurityPermissionFlag::SerializationFormatter" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::SerializationFormatter succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::SerializationFormatter failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::SkipVerification );
Console::WriteLine( "Demanding SecurityPermissionFlag::SkipVerification" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::SkipVerification succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::SkipVerification failed: {0}", e->Message );
}
try
{
SecurityPermission^ sp = gcnew SecurityPermission( SecurityPermissionFlag::UnmanagedCode );
Console::WriteLine( "Demanding SecurityPermissionFlag::UnmanagedCode" );
sp->Demand();
Console::WriteLine( "Demand for SecurityPermissionFlag::UnmanagedCode succeeded." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Demand for SecurityPermissionFlag::UnmanagedCode failed: {0}", e->Message );
}
}
};
int main()
{
MyClass::PermissionDemo();
}
// This sample demonstrates the use of the SecurityPermissionAttribute.
import System.*;
import System.Security.Permissions.*;
import System.Security.*;
class MyClass
{
public static void PermissionDemo()
{
try {
DenySecurityPermissions();
DenyAllSecurityPermissions();
DoNotDenySecurityPermissions();
}
catch (System.Exception e) {
Console.WriteLine(e.get_Message().ToString());
}
} //PermissionDemo
// This method demonstrates the use of the SecurityPermissionAttribute
// to deny individual security permissions.
// Set the Assertion property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
Assertion = true)
*/
// Set the ControlAppDomain property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
ControlAppDomain = true)
*/
// Set the ControlDomainPolicy property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
ControlDomainPolicy = true)
*/
// Set the ControlEvidence property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
ControlEvidence = true)
*/
// Set the ControlPolicy property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
ControlPolicy = true)
*/
// Set the ControlPrincipal property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
ControlPrincipal = true)
*/
// Set the ControlThread property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
ControlThread = true)
*/
// Set the Execution property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
Execution = true)
*/
// Set the Flags property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
Flags = SecurityPermissionFlag.NoFlags)
*/
// Set the Infrastructure property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
Infrastructure = true)
*/
// Set the RemotingConfiguration property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
RemotingConfiguration = true)
*/
// Set the SerializationFormatter property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
SerializationFormatter = true)
*/
// Set the SkipVerification property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
SkipVerification = true)
*/
// Set the UnmanagedCode property.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
UnmanagedCode = true)
*/
public static void DenySecurityPermissions()
{
Console.WriteLine("Executing DenySecurityPermissions.");
Console.WriteLine("Denied all permissions individually.");
TestSecurityPermissions();
} //DenySecurityPermissions
// This method demonstrates the use of SecurityPermissionFlag.AllFlags
// to deny all security permissions.
/** @attribute SecurityPermissionAttribute(SecurityAction.Deny,
Flags = SecurityPermissionFlag.AllFlags)
*/
public static void DenyAllSecurityPermissions()
{
Console.WriteLine("\nExecuting DenyAllSecurityPermissions.");
Console.WriteLine("Denied all permissions using " +
"SecurityPermissionFlag.AllFlags.");
TestSecurityPermissions();
} //DenyAllSecurityPermissions
// This method demonstrates the effect of not denying security permissions.
public static void DoNotDenySecurityPermissions()
{
Console.WriteLine("\nExecuting DoNotDenySecurityPermissions.");
Console.WriteLine("No permissions have been denied.");
DemandSecurityPermissions();
} //DoNotDenySecurityPermissions
public static void TestSecurityPermissions()
{
Console.WriteLine("\nExecuting TestSecurityPermissions.\n");
try {
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Assertion);
Console.WriteLine("Demanding SecurityPermissionFlag.Assertion");
// This demand should cause an exception.
sp.Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.Assertion failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlAppDomain);
Console.WriteLine("Demanding " +
"SecurityPermissionFlag.ControlAppDomain");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlAppDomain failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlDomainPolicy);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlDomainPolicy");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlDomainPolicy failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlEvidence);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlEvidence");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlEvidence failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlPolicy);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlPolicy");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlPolicy failed: " +
e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlPrincipal);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlPrincipal");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlPrincipal failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.ControlThread);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlThread");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlThread failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Execution);
Console.WriteLine("Demanding SecurityPermissionFlag.Execution");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.Execution failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(SecurityPermissionFlag.Infrastructure);
Console.WriteLine("Demanding " +
"SecurityPermissionFlag.Infrastructure");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.Infrastructure failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.RemotingConfiguration);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.RemotingConfiguration");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.RemotingConfiguration failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.SerializationFormatter);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.SerializationFormatter");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.SerializationFormatter failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.SkipVerification);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.SkipVerification");
sp.Demand();
TestFailed();
}
catch (System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.SkipVerification failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.UnmanagedCode);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.UnmanagedCode");
// This demand should cause an exception.
sp.Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.UnmanagedCode failed: "
+ e.get_Message()));
}
} //TestSecurityPermissions
public static void TestFailed() throws Exception
{
Console.WriteLine("In TestFailed method.");
Console.WriteLine("Throwing an exception.");
throw new Exception() ;
} //TestFailed
public static void DemandSecurityPermissions()
{
Console.WriteLine("\nExecuting DemandSecurityPermissions.\n");
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.Assertion);
Console.WriteLine("Demanding SecurityPermissionFlag.Assertion");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.Assertion succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.Assertion failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlAppDomain);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlAppDomain");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.ControlAppDomain succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlAppDomain failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlDomainPolicy);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlDomainPolicy");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.ControlDomainPolicy succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlDomainPolicy failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlEvidence);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlEvidence");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.ControlEvidence succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlEvidence failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlPolicy);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlPolicy");
sp.Demand();
Console.WriteLine("Demand "
+ "for SecurityPermissionFlag.ControlPolicy succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlPolicy failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlPrincipal);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlPrincipal");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.ControlPrincipal succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlPrincipal failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.ControlThread);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.ControlThread");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.ControlThread succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.ControlThread failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.Execution);
Console.WriteLine("Demanding SecurityPermissionFlag.Execution");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.Execution succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.Execution failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.Infrastructure);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.Infrastructure");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.Infrastructure succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.Infrastructure failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.RemotingConfiguration);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.RemotingConfiguration");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.RemotingConfiguration succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.RemotingConfiguration failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.SerializationFormatter);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.SerializationFormatter");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.SerializationFormatter succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.SerializationFormatter failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.SkipVerification);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.SkipVerification");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.SkipVerification succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.SkipVerification failed: "
+ e.get_Message()));
}
try {
SecurityPermission sp =
new SecurityPermission(
SecurityPermissionFlag.UnmanagedCode);
Console.WriteLine("Demanding "
+ "SecurityPermissionFlag.UnmanagedCode");
sp.Demand();
Console.WriteLine("Demand for "
+ "SecurityPermissionFlag.UnmanagedCode succeeded.");
}
catch(System.Exception e) {
Console.WriteLine(("Demand for "
+ "SecurityPermissionFlag.UnmanagedCode failed: "
+ e.get_Message()));
}
} //DemandSecurityPermissions
public static void main(String[] args)
{
PermissionDemo();
} //main
} //MyClass
平台
Windows 98、Windows 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
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
请参见
参考
SecurityPermissionAttribute 类
SecurityPermissionAttribute 成员
System.Security.Permissions 命名空间