Бөлісу құралы:


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, String, String)

Инициализирует новый экземпляр MessageQueuePermission класса с указанными уровнями доступа, компьютером для использования, описания очереди и категории очередей.

MessageQueuePermission(MessageQueuePermissionAccess, 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)

Возвращает новый объект разрешения, который является объединением текущих и указанных объектов разрешений.

Применяется к

См. также раздел