SecurityAction を指定して、 SecurityPermissionAttribute クラスの新しいインスタンスを初期化します。
Public Sub New( _
ByVal action As SecurityAction _)
[C#]
public SecurityPermissionAttribute(
SecurityActionaction);
[C++]
public: SecurityPermissionAttribute(
SecurityActionaction);
[JScript]
public function SecurityPermissionAttribute(
action : SecurityAction);
パラメータ
- action
SecurityAction 値の 1 つ。
使用例
' 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]
[C#]
// 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();
}
}
[C++]
// This sample demonstrates the use of the SecurityPermissionAttribute.
#using <mscorlib.dll>
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)]
// 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)]
static void DenySecurityPermissions() {
Console::WriteLine(S"Executing DenySecurityPermissions.");
Console::WriteLine(S"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(S"\nExecuting DenyAllSecurityPermissions.");
Console::WriteLine(S"Denied all permissions using SecurityPermissionFlag::AllFlags.");
TestSecurityPermissions();
}
// This method demonstrates the effect of not denying security permissions.
static void DoNotDenySecurityPermissions() {
Console::WriteLine(S"\nExecuting DoNotDenySecurityPermissions.");
Console::WriteLine(S"No permissions have been denied.");
DemandSecurityPermissions();
}
static void TestSecurityPermissions() {
Console::WriteLine(S"\nExecuting TestSecurityPermissions.\n");
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::Assertion);
Console::WriteLine(S"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(S"Demand for SecurityPermissionFlag::Assertion failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlAppDomain);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlAppDomain");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlAppDomain failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlDomainPolicy);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlDomainPolicy");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlDomainPolicy failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlEvidence);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlEvidence");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlEvidence failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlPolicy);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlPolicy");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlPolicy failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlPrincipal);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlPrincipal");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlPrincipal failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlThread);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlThread");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlThread failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::Execution);
Console::WriteLine(S"Demanding SecurityPermissionFlag::Execution");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::Execution failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::Infrastructure);
Console::WriteLine(S"Demanding SecurityPermissionFlag::Infrastructure");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::Infrastructure failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::RemotingConfiguration);
Console::WriteLine(S"Demanding SecurityPermissionFlag::RemotingConfiguration");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::RemotingConfiguration failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::SerializationFormatter);
Console::WriteLine(S"Demanding SecurityPermissionFlag::SerializationFormatter");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::SerializationFormatter failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::SkipVerification);
Console::WriteLine(S"Demanding SecurityPermissionFlag::SkipVerification");
sp->Demand();
TestFailed();
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::SkipVerification failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::UnmanagedCode);
Console::WriteLine(S"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(S"Demand for SecurityPermissionFlag::UnmanagedCode failed: {0}", e->Message);
}
}
public:
static void TestFailed() {
Console::WriteLine(S"In TestFailed method.");
Console::WriteLine(S"Throwing an exception.");
throw new Exception();
}
static void DemandSecurityPermissions() {
Console::WriteLine(S"\nExecuting DemandSecurityPermissions.\n");
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::Assertion);
Console::WriteLine(S"Demanding SecurityPermissionFlag::Assertion");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::Assertion succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::Assertion failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlAppDomain);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlAppDomain");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlAppDomain succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlAppDomain failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlDomainPolicy);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlDomainPolicy");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlDomainPolicy succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlDomainPolicy failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlEvidence);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlEvidence");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlEvidence succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlEvidence failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlPolicy);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlPolicy");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlPolicy succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlPolicy failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlPrincipal);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlPrincipal");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlPrincipal succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlPrincipal failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::ControlThread);
Console::WriteLine(S"Demanding SecurityPermissionFlag::ControlThread");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlThread succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::ControlThread failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::Execution);
Console::WriteLine(S"Demanding SecurityPermissionFlag::Execution");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::Execution succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::Execution failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::Infrastructure);
Console::WriteLine(S"Demanding SecurityPermissionFlag::Infrastructure");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::Infrastructure succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::Infrastructure failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::RemotingConfiguration);
Console::WriteLine(S"Demanding SecurityPermissionFlag::RemotingConfiguration");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::RemotingConfiguration succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::RemotingConfiguration failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::SerializationFormatter);
Console::WriteLine(S"Demanding SecurityPermissionFlag::SerializationFormatter");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::SerializationFormatter succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::SerializationFormatter failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::SkipVerification);
Console::WriteLine(S"Demanding SecurityPermissionFlag::SkipVerification");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::SkipVerification succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::SkipVerification failed: {0}", e->Message);
}
try {
SecurityPermission* sp = new SecurityPermission(SecurityPermissionFlag::UnmanagedCode);
Console::WriteLine(S"Demanding SecurityPermissionFlag::UnmanagedCode");
sp->Demand();
Console::WriteLine(S"Demand for SecurityPermissionFlag::UnmanagedCode succeeded.");
} catch (Exception* e) {
Console::WriteLine(S"Demand for SecurityPermissionFlag::UnmanagedCode failed: {0}", e->Message);
}
}
};
int main() {
MyClass::PermissionDemo();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
参照
SecurityPermissionAttribute クラス | SecurityPermissionAttribute メンバ | System.Security.Permissions 名前空間