Compartilhar via


MessageQueuePermission Classe

Definição

Permite o controle de permissões de acesso de código para mensagens.

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
Herança
MessageQueuePermission
Atributos
Implementações

Exemplos

O exemplo de MessageQueuePermission código a seguir cria várias instâncias e demonstra o uso da PermissionEntries propriedade.


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());
        }
    }
}

Construtores

Nome Description
MessageQueuePermission()

Inicializa uma nova instância da classe MessageQueuePermission.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inicializa uma nova instância da classe com os níveis de MessageQueuePermission acesso especificados, o computador a ser usado, a descrição da fila e a categoria de fila.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inicializa uma nova instância da MessageQueuePermission classe com os níveis de acesso especificados e o caminho da fila.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicializa uma nova instância da MessageQueuePermission classe com as entradas de nível de acesso de permissão especificadas.

MessageQueuePermission(PermissionState)

Inicializa uma nova instância da MessageQueuePermission classe com o estado de permissão especificado.

Propriedades

Nome Description
PermissionEntries

Obtém a coleção de entradas de permissão para essa solicitação de permissões.

Métodos

Nome Description
Assert()

Declara que o código de chamada pode acessar o recurso protegido por uma demanda de permissão por meio do código que chama esse método, mesmo que os chamadores mais altos na pilha não tenham recebido permissão para acessar o recurso. O uso Assert() pode criar problemas de segurança.

(Herdado de CodeAccessPermission)
Copy()

Cria e retorna uma cópia idêntica do objeto de permissão atual.

Demand()

Força um SecurityException tempo de execução se todos os chamadores mais altos na pilha de chamadas não tiverem recebido a permissão especificada pela instância atual.

(Herdado de CodeAccessPermission)
Deny()
Obsoleto.
Obsoleto.

Impede que os chamadores mais altos na pilha de chamadas usem o código que chama esse método para acessar o recurso especificado pela instância atual.

(Herdado de CodeAccessPermission)
Equals(Object)

Determina se o objeto especificado CodeAccessPermission é igual ao atual CodeAccessPermission.

(Herdado de CodeAccessPermission)
FromXml(SecurityElement)

Reconstrói um objeto de segurança com um estado especificado de uma codificação XML.

GetHashCode()

Obtém um código hash para o CodeAccessPermission objeto adequado para uso em algoritmos de hash e estruturas de dados, como uma tabela de hash.

(Herdado de CodeAccessPermission)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Intersect(IPermission)

Retorna um novo objeto de permissão que representa a interseção do objeto de permissão atual e do objeto de permissão especificado.

IsSubsetOf(IPermission)

Retorna um valor que indica se o objeto de permissão atual é um subconjunto do objeto de permissão especificado.

IsUnrestricted()

Retorna um valor que indica se a permissão pode ser representada como irrestrita sem qualquer conhecimento da semântica de permissão.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
PermitOnly()

Impede que os chamadores mais altos na pilha de chamadas usem o código que chama esse método para acessar todos os recursos, exceto o recurso especificado pela instância atual.

(Herdado de CodeAccessPermission)
ToString()

Cria e retorna uma representação de cadeia de caracteres do objeto de permissão atual.

(Herdado de CodeAccessPermission)
ToXml()

Cria uma codificação XML do objeto de segurança e seu estado atual.

Union(IPermission)

Retorna um novo objeto de permissão que é a união dos objetos de permissão atuais e especificados.

Aplica-se a

Confira também