MessageQueuePermission クラス

定義

メッセージのコード アクセス許可を制御できるようにします。

public ref class MessageQueuePermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Serializable]
public sealed class MessageQueuePermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Serializable>]
type MessageQueuePermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class MessageQueuePermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
継承
MessageQueuePermission
属性
実装

次のコード例では、いくつかのインスタンスを MessageQueuePermission 作成し、プロパティの使用方法を PermissionEntries 示します。


using System;
using System.Messaging;

public class MessageQueuePermissionExample
{
    public static void Main()
    {
        // Create a new instance of the class.
        MessageQueuePermissionExample example =
            new MessageQueuePermissionExample();

        // Create a message queue on the local computer.
        CreateQueue(".\\exampleQueue", false);

        // Demonstrate MessageQueuePermission's constructors.
        example.CreatePermission1();
        example.CreatePermission2();
        example.CreatePermission3();
        example.CreatePermission4();
        example.CreatePermission5();

        // Get and set MessageQueuePermission's PermissionEntries property.
        example.GetPermissionEntries();
    }

    // Creates a new queue.
    public static void CreateQueue(string queuePath, bool transactional)
    {
        if(!MessageQueue.Exists(queuePath))
        {
            MessageQueue.Create(queuePath, transactional);
        }
        else
        {
            Console.WriteLine(queuePath + " already exists.");
        }
    }

    // Demonstrates the following MessageQueuePermission constructor:
    // public #ctor ()
    public void CreatePermission1()
    {
        // Create a new instance of MessageQueuePermission.
        MessageQueuePermission permission = new MessageQueuePermission();
    }

    // Demonstrates the following MessageQueuePermission constructor:
    // public #ctor (MessageQueuePermissionAccess permissionAccess,
    //  String path)
    public void CreatePermission2()
    {
        // Create a new instance of MessageQueuePermission.
        MessageQueuePermission permission = new MessageQueuePermission(
            MessageQueuePermissionAccess.Receive,
            ".\\exampleQueue");
    }

    // Demonstrates the following MessageQueuePermission constructor:
    // public #ctor (MessageQueuePermissionAccess permissionAccess,
    //  String machineName, String label, String category)
    public void CreatePermission3()
    {
        // Connect to a queue on the local computer.
        MessageQueue queue = new MessageQueue(".\\exampleQueue");

        // Create a new instance of MessageQueuePermission.
    string queueCategory = queue.Category.ToString();
    string machineName = queue.MachineName;
    string label = queue.Label;
        MessageQueuePermission permission = new MessageQueuePermission(
            MessageQueuePermissionAccess.Receive,
            machineName,
            label,
            queueCategory);
    }

    // Demonstrates the following MessageQueuePermission constructor:
    //public #ctor (MessageQueuePermissionEntry[] permissionAccessEntries)
    public void CreatePermission4()
    {
        // Connect to a queue on the local computer.
        MessageQueue queue = new MessageQueue(".\\exampleQueue");

        // Create an array of type MessageQueuePermissionEntry.
        MessageQueuePermissionEntry[] entries =
            new MessageQueuePermissionEntry[1];

        // Create a new instance of MessageQueuePermissionEntry and place the
        // instance in the array.
    string machineName = queue.MachineName;
    string label = queue.Label;
        entries[0] = new MessageQueuePermissionEntry(
            MessageQueuePermissionAccess.Receive,
            machineName,
            label,
            queue.Category.ToString());

        // Create a new instance of MessageQueuePermission.
        MessageQueuePermission permission = new MessageQueuePermission(
            entries);
    }

    // Demonstrates the following MessageQueuePermission constructor:
    //public #ctor (PermissionState state)
    public void CreatePermission5()
    {
        // Create a new instance of MessageQueuePermission.
        MessageQueuePermission permission = new MessageQueuePermission(
            System.Security.Permissions.PermissionState.Unrestricted);
    }

    public void GetPermissionEntries()
    {
    
        // Connect to a queue on the local computer.
        MessageQueue queue = new MessageQueue(".\\exampleQueue");

        // Create an array of type MessageQueuePermissionEntry.
        MessageQueuePermissionEntry[] entries =
            new MessageQueuePermissionEntry[1];

        // Create a new instance of MessageQueuePermissionEntry and place the
        // instance in the array.
    string machineName = queue.MachineName;
    string label = queue.Label;
        entries[0] = new MessageQueuePermissionEntry(
            MessageQueuePermissionAccess.Receive,
            machineName,
            label,
            queue.Category.ToString());

        // Create a new instance of MessageQueuePermission.
        MessageQueuePermission permission = new MessageQueuePermission(
            entries);

        // Create a new instance of MessageQueuePermissionEntryCollection and
        // use it to retrieve the permission's PermissionEntries property
        // value.
        MessageQueuePermissionEntryCollection collection =
            permission.PermissionEntries;

        // Loop through the collection.
        foreach(MessageQueuePermissionEntry entry in collection)
        {
            // Display the property values of each MessageQueuePermissionEntry.
            Console.WriteLine("PermissionAccess: {0}", entry.PermissionAccess);
            Console.WriteLine("MachineName: {0}", entry.MachineName);
            Console.WriteLine("Label: {0}", entry.Label);
            Console.WriteLine("Category: {0}", entry.Category.ToString());
        }
    }
}

コンストラクター

MessageQueuePermission()

MessageQueuePermission クラスの新しいインスタンスを初期化します。

MessageQueuePermission(MessageQueuePermissionAccess, String)

アクセス レベルとキューのパスを指定して、MessageQueuePermission クラスの新しいインスタンスを初期化します。

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

アクセス レベル、使用するコンピューター、キューの説明、およびキュー カテゴリを指定して、MessageQueuePermission クラスの新しいインスタンスを初期化します。

MessageQueuePermission(MessageQueuePermissionEntry[])

アクセス許可のアクセス レベル エントリを指定して、MessageQueuePermission クラスの新しいインスタンスを初期化します。

MessageQueuePermission(PermissionState)

指定したアクセス許可状態を使用して、MessageQueuePermission クラスの新しいインスタンスを初期化します。

プロパティ

PermissionEntries

アクセス許可要求に対するアクセス許可エントリのコレクションを取得します。

メソッド

Assert()

呼び出し側コードが、このメソッドを呼び出すコードを通じて、アクセス許可要求によって保護されているリソースにアクセス可能であるということ、それも、スタックの中で上位に位置する呼び出し側にリソースへのアクセス許可が付与されていない場合でさえそれが可能であることを宣言します。 Assert() を使用すると、セキュリティ上の問題が発生することがあります。

(継承元 CodeAccessPermission)
Copy()

現在のアクセス許可オブジェクトのコピーを作成して返します。

Demand()

呼び出し履歴の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が付与されていない場合、実行時に SecurityException を強制します。

(継承元 CodeAccessPermission)
Deny()
互換性のために残されています。
互換性のために残されています。

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスで指定されたリソースにアクセスしないようにします。

(継承元 CodeAccessPermission)
Equals(Object)

指定した CodeAccessPermission オブジェクトが、現在の CodeAccessPermission と等しいかどうかを判断します。

(継承元 CodeAccessPermission)
FromXml(SecurityElement)

XML エンコードから指定された状態で、セキュリティ オブジェクトを再構築します。

GetHashCode()

ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適している、CodeAccessPermission オブジェクトのハッシュ コードを取得します。

(継承元 CodeAccessPermission)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Intersect(IPermission)

現在のアクセス許可オブジェクトと指定したアクセス許可オブジェクトの積集合を表す新しいアクセス許可オブジェクトを返します。

IsSubsetOf(IPermission)

現在のアクセス許可オブジェクトが、指定したアクセス許可オブジェクトのサブセットかどうかを示す値を返します。

IsUnrestricted()

アクセス許可のセマンティクスがわからなくてもアクセス許可を無制限として表すことができるかどうかを示す値を返します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
PermitOnly()

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードでは一切リソースにアクセスできないようにします。ただし、現在のインスタンスで指定されているリソースは例外です。

(継承元 CodeAccessPermission)
ToString()

現在のアクセス許可オブジェクトの文字列形式を作成して返します。

(継承元 CodeAccessPermission)
ToXml()

セキュリティ オブジェクトとその現在の状態の XML エンコードを作成します。

Union(IPermission)

現在のアクセス許可オブジェクトと指定したアクセス許可オブジェクトの和集合である、新しいアクセス許可オブジェクトを返します。

適用対象

こちらもご覧ください