次の方法で共有


SecurityPermissionAttribute コンストラクタ

SecurityAction を指定して、 SecurityPermissionAttribute クラスの新しいインスタンスを初期化します。

Public Sub New( _
   ByVal action As SecurityAction _)
[C#]
public SecurityPermissionAttribute(
   SecurityActionaction);
[C++]
public: SecurityPermissionAttribute(
   SecurityActionaction);
[JScript]
public function SecurityPermissionAttribute(
   action : SecurityAction);

パラメータ

使用例

 
' 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 名前空間