SecurityPermissionFlag 列挙体とは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > SecurityPermissionFlag 列挙体の意味・解説 

SecurityPermissionFlag 列挙体

セキュリティ アクセス許可オブジェクトアクセス フラグ指定します

この列挙体には、メンバ値のビットごとの組み合わせ可能にする FlagsAttribute 属性含まれています。

名前空間: System.Security.Permissions
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<FlagsAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration SecurityPermissionFlag
Dim instance As SecurityPermissionFlag
[SerializableAttribute] 
[FlagsAttribute] 
[ComVisibleAttribute(true)] 
public enum SecurityPermissionFlag
[SerializableAttribute] 
[FlagsAttribute] 
[ComVisibleAttribute(true)] 
public enum class SecurityPermissionFlag
/** @attribute SerializableAttribute() */ 
/** @attribute FlagsAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public enum SecurityPermissionFlag
SerializableAttribute 
FlagsAttribute 
ComVisibleAttribute(true) 
public enum SecurityPermissionFlag
メンバメンバ
 メンバ説明
AllFlagsアクセス許可無制限状態。 
Assertionこのコードすべての呼び出し元に操作のために必要なアクセス許可があることをアサートする機能。 
BindingRedirectsアプリケーション構成ファイル明示的にバインディング リダイレクト実行するためのアクセス許可。これには、統合され.NET Framework アセンブリリダイレクトだけでなく、.NET Framework の外で見つかったアセンブリリダイレクト含まれます。 
ControlAppDomainAppDomain作成し操作する機能。 
ControlDomainPolicyドメイン ポリシー指定する機能。 
ControlEvidence証拠提供する機能。これには、共通言語ランタイム提供する証拠変更する機能含まれます。 

これは強力なアクセス許可であるため、信頼性の高いコードだけに付与するようにしてください

ControlPolicyポリシー表示および変更する機能。 

これは強力なアクセス許可であるため、信頼性の高いコードだけに付与するようにしてください

ControlPrincipalプリンシパル オブジェクト操作する機能。 
ControlThreadスレッド特定の高度な操作使用する機能。 
Executionコード実行するためのアクセス許可。このアクセス許可ない場合マネージ コード実行されません。 

このフラグは、DenyAssert、PermitOnly などのスタック修飾子動的に使用する場合無効です。

Infrastructureリモート処理コンテキスト シンク、エンボイ シンク動的シンク追加など、共通言語ランタイム インフラストラクチャコード組み込むためのアクセス許可。 
NoFlagsセキュリティ アクセスがありません。 
RemotingConfigurationリモート処理の型とチャネル設定するためのアクセス許可。 
SerializationFormatterシリアル化サービス提供する機能シリアル化フォーマッタ使用します。 
SkipVerificationこのアセンブリコード検査スキップする機能。このアクセス許可付与されている場合は、検査できないコード実行できます。 

これは強力なアクセス許可であるため、信頼性の高いコードだけに付与するようにしてください

このフラグは、DenyAssertPermitOnly などのスタック修飾子動的に使用する場合無効です。

UnmanagedCodeアンマネージ コード呼び出す機能。 

アンマネージ コードは、他のアクセス許可バイパスすることを許す可能性があるため、これは信頼性の高いコードだけに与えるようにする必要がある危険なアクセス許可です。これは PInvoke または COM 相互運用機能使用してネイティブ コード呼び出すようなアプリケーション使用します

解説解説

この列挙体には、メンバ値のビットごとの組み合わせ可能にする FlagsAttribute 属性あります

この列挙体は、SecurityPermission で使用されます。

注意に関するメモ注意

これらのフラグ多く強力なため、信頼性の高いコードだけに付与するようにしてください

使用例使用例

SecurityPermissionFlag 列挙体を使用しセキュリティ アクセス許可拒否および要求するコード例次に示します

' 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 
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
System.Security.Permissions 名前空間
SecurityPermission クラス
SecurityPermissionAttribute クラス



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SecurityPermissionFlag 列挙体」の関連用語

SecurityPermissionFlag 列挙体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SecurityPermissionFlag 列挙体のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS