Compartir por


MessageQueuePermission Clase

Definición

Permite el control de los permisos de acceso al código para la mensajería.

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
Herencia
MessageQueuePermission
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se crean varias instancias de MessageQueuePermission y se muestra el uso de la PermissionEntries propiedad .


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

Constructores

Nombre Description
MessageQueuePermission()

Inicializa una nueva instancia de la clase MessageQueuePermission.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inicializa una nueva instancia de la MessageQueuePermission clase con los niveles de acceso, el equipo que se va a usar, la descripción de la cola y la categoría de cola especificados.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inicializa una nueva instancia de la MessageQueuePermission clase con los niveles de acceso especificados y la ruta de acceso de la cola.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicializa una nueva instancia de la MessageQueuePermission clase con las entradas de nivel de acceso de permisos especificadas.

MessageQueuePermission(PermissionState)

Inicializa una nueva instancia de la MessageQueuePermission clase con el estado de permiso especificado.

Propiedades

Nombre Description
PermissionEntries

Obtiene la colección de entradas de permisos para esta solicitud de permisos.

Métodos

Nombre Description
Assert()

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permisos a través del código que llama a este método, incluso si a los autores de llamadas superiores de la pila no se les ha concedido permiso para acceder al recurso. El uso Assert() de puede crear problemas de seguridad.

(Heredado de CodeAccessPermission)
Copy()

Crea y devuelve una copia idéntica del objeto de permiso actual.

Demand()

Fuerza un SecurityException objeto en tiempo de ejecución si no se han concedido a todos los llamadores más altos de la pila de llamadas el permiso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Deny()
Obsoletos.
Obsoletos.

Impide que los autores de llamadas más altos en la pila de llamadas usen el código que llama a este método para acceder al recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Equals(Object)

Determina si el objeto especificado CodeAccessPermission es igual al objeto actual CodeAccessPermission.

(Heredado de CodeAccessPermission)
FromXml(SecurityElement)

Reconstruye un objeto de seguridad con un estado especificado a partir de una codificación XML.

GetHashCode()

Obtiene un código hash para el CodeAccessPermission objeto que es adecuado para su uso en algoritmos hash y estructuras de datos, como una tabla hash.

(Heredado de CodeAccessPermission)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Intersect(IPermission)

Devuelve un nuevo objeto de permiso que representa la intersección del objeto de permiso actual y el objeto de permiso especificado.

IsSubsetOf(IPermission)

Devuelve un valor que indica si el objeto de permiso actual es un subconjunto del objeto de permiso especificado.

IsUnrestricted()

Devuelve un valor que indica si el permiso se puede representar como sin restricciones sin ningún conocimiento de la semántica de permisos.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
PermitOnly()

Impide que los autores de llamadas más altos en la pila de llamadas usen el código que llama a este método para acceder a todos los recursos, excepto para el recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
ToString()

Crea y devuelve una representación de cadena del objeto de permiso actual.

(Heredado de CodeAccessPermission)
ToXml()

Crea una codificación XML del objeto de seguridad y su estado actual.

Union(IPermission)

Devuelve un nuevo objeto de permiso que es la unión de los objetos de permiso actuales y especificados.

Se aplica a

Consulte también