MessageQueuePermission Class

Definition

Permite o controle de permissões de acesso do código para mensagens.Allows control of code access permissions for messaging.

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
type MessageQueuePermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class MessageQueuePermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Inheritance
MessageQueuePermission
Attributes
Implements

Examples

O exemplo de código a seguir cria várias instâncias de MessageQueuePermission e demonstra o uso da propriedade PermissionEntries.The following code example creates several instances of MessageQueuePermission and demonstrates the use of the PermissionEntries property.


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

Constructors

MessageQueuePermission()

Inicializa uma nova instância da classe MessageQueuePermission.Initializes a new instance of the MessageQueuePermission class.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inicializa uma nova instância da classe MessageQueuePermission com os níveis de acesso e o caminho da fila especificados.Initializes a new instance of the MessageQueuePermission class with the specified access levels and the path of the queue.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inicializa uma nova instância da classe MessageQueuePermission com os níveis de acesso, o computador a usar, a descrição de fila e a categoria de fila especificados.Initializes a new instance of the MessageQueuePermission class with the specified access levels, computer to use, queue description, and queue category.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicializa uma nova instância da classe MessageQueuePermission com as entradas de nível de acesso de permissão especificadas.Initializes a new instance of the MessageQueuePermission class with the specified permission access level entries.

MessageQueuePermission(PermissionState)

Inicializa uma nova instância da classe MessageQueuePermission com o estado da permissão especificado.Initializes a new instance of the MessageQueuePermission class with the specified permission state.

Properties

PermissionEntries

Obtém a coleção de entradas de permissão para esta solicitação de permissões.Gets the collection of permission entries for this permissions request.

Methods

Assert()

Declara que o código de chamada pode acessar o recurso protegido por uma demanda de permissão através do código que chama este método, mesmo que os chamadores na pilha não tenham recebido permissão para acessar o recurso.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Usar Assert() pode criar problemas de segurança.Using Assert() can create security issues.

(Inherited from CodeAccessPermission)
Copy()

Cria e retorna uma cópia idêntica do objeto de permissão atual.Creates and returns an identical copy of the current permission object.

Demand()

Força um SecurityException no tempo de execução se todos os chamadores no topo da pilha de chamadas não receberam as permissões especificadas pela instância atual.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(Inherited from CodeAccessPermission)
Deny()

Impede que os chamadores no nível superior da pilha de chamadas usem o código que chama esse método para acessar o recurso especificado pela instância atual.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Inherited from CodeAccessPermission)
Equals(Object)

Determina se o objeto CodeAccessPermission especificado é igual ao CodeAccessPermission atual.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Inherited from CodeAccessPermission)
FromXml(SecurityElement)

Reconstrói um objeto de segurança com um estado especificado de uma codificação XML.Reconstructs a security object with a specified state from an XML encoding.

GetHashCode()

Obtém um código hash para o objeto CodeAccessPermission atual, adequado para algoritmos de hash e estruturas de dados, tais como uma tabela de hash.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Inherited from CodeAccessPermission)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission)

Retorna um novo objeto de permissão que representa a interseção de um objeto de permissão atual e o objeto de permissão especificado.Returns a new permission object that represents the intersection of the current permission object and the specified permission object.

IsSubsetOf(IPermission)

Retorna um valor que indica se o objeto de permissão atual é um subconjunto do objeto de permissão especificado.Returns a value that indicates whether the current permission object is a subset of the specified permission object.

IsUnrestricted()

Retorna um valor que indica se a permissão pode ser representada como irrestrita sem qualquer conhecimento da semântica da permissão.Returns a value that indicates whether the permission can be represented as unrestricted without any knowledge of the permission semantics.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
PermitOnly()

Impede que os chamadores no topo da pilha de chamadas usem o código que chama esse método para acessar todos os recursos, com exceção do recurso especificado pela instância atual.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Inherited from CodeAccessPermission)
ToString()

Cria e retorna uma representação de cadeia de caracteres do objeto de permissão atual.Creates and returns a string representation of the current permission object.

(Inherited from CodeAccessPermission)
ToXml()

Cria uma codificação XML do objeto de segurança e seu estado atual.Creates an XML encoding of the security object and its current state.

Union(IPermission)

Retorna um novo objeto de permissão que é a união dos objetos de permissão especificado e atual.Returns a new permission object that is the union of the current and specified permission objects.

Explicit Interface Implementations

IPermission.Demand() (Inherited from CodeAccessPermission)
IStackWalk.Assert() (Inherited from CodeAccessPermission)
IStackWalk.Demand() (Inherited from CodeAccessPermission)
IStackWalk.Deny() (Inherited from CodeAccessPermission)
IStackWalk.PermitOnly() (Inherited from CodeAccessPermission)

Applies to

See also