Compartir vía


MessageQueuePermission Clase

Definición

Permite controlar los permisos de acceso a código para los mensajes.

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

MessageQueuePermission()

Inicializa una nueva instancia de la clase MessageQueuePermission.

MessageQueuePermission(MessageQueuePermissionAccess, String)

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

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

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

MessageQueuePermission(MessageQueuePermissionEntry[])

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

MessageQueuePermission(PermissionState)

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

Propiedades

PermissionEntries

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

Métodos

Assert()

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permiso a través del código que llama a este método, incluso si los autores de la llamada situados en una posición más alta de la pila no tienen permiso para tener acceso al recurso. El uso de Assert() puede crear problemas de seguridad.

(Heredado de CodeAccessPermission)
Copy()

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

Demand()

Fuerza a un SecurityException en tiempo de ejecución si todos los autores de llamada situados en la parte superior de la pila de llamadas no disponen del permiso especificado por la instancia actual.

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

Impide que los autores de la llamada situados en la posición más alta de la pila de llamadas usen el código que llama a este método para tener acceso al recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Equals(Object)

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

(Heredado de CodeAccessPermission)
FromXml(SecurityElement)

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

GetHashCode()

Obtiene un código hash para el objeto CodeAccessPermission 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 objeto de permiso nuevo 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 puede representarse como permiso no restringido sin conocimientos sobre la semántica de permisos.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
PermitOnly()

Impide que los llamadores situados más arriba en la pila de llamadas usen el código que llama a este método para tener acceso a todos los recursos excepto al 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 representa la unión del objeto de permiso actual y el objeto de permiso especificado.

Se aplica a

Consulte también