MessageQueuePermission Clase

Definición

Permite controlar los permisos de acceso a código para los mensajes.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
Herencia
MessageQueuePermission
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se crean MessageQueuePermission varias instancias de y se muestra PermissionEntries el uso de la propiedad.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());
        }
    }
}

Constructores

MessageQueuePermission()

Inicializa una nueva instancia de la clase MessageQueuePermission.Initializes a new instance of the MessageQueuePermission class.

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.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 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.Initializes a new instance of the MessageQueuePermission class with the specified access levels, computer to use, queue description, and queue category.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicializa una nueva instancia de la clase MessageQueuePermission con las entradas de nivel de acceso de permiso especificadas.Initializes a new instance of the MessageQueuePermission class with the specified permission access level entries.

MessageQueuePermission(PermissionState)

Inicializa una nueva instancia de la clase MessageQueuePermission con el estado de permiso especificado.Initializes a new instance of the MessageQueuePermission class with the specified permission state.

Propiedades

PermissionEntries

Obtiene la colección de entradas de permiso para esta solicitud de permisos.Gets the collection of permission entries for this permissions request.

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.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. El uso de Assert() puede crear problemas de seguridad.Using Assert() can create security issues.

(Heredado de CodeAccessPermission)
Copy()

Crea y devuelve una copia idéntica del objeto de permiso actual.Creates and returns an identical copy of the current permission object.

Demand()

Fuerza SecurityException en tiempo de ejecución si todos los llamadores situados en la pila de llamadas no disponen del permiso especificado por la instancia actual.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.

(Heredado de CodeAccessPermission)
Deny()

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso al recurso especificado por la instancia actual.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Heredado de CodeAccessPermission)
Equals(Object)

Determina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Heredado de CodeAccessPermission)
FromXml(SecurityElement)

Reconstruye un objeto de seguridad con un estado especificado a partir de codificación XML.Reconstructs a security object with a specified state from an XML encoding.

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.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Heredado de CodeAccessPermission)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(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.Returns a new permission object that represents the intersection of the current permission object and the specified permission object.

IsSubsetOf(IPermission)

Devuelve un valor que indica si el objeto de permiso actual es un subconjunto del objeto de permiso especificado.Returns a value that indicates whether the current permission object is a subset of the specified permission object.

IsUnrestricted()

Devuelve un valor que indica si el permiso puede representarse como permiso no restringido sin conocimientos sobre la semántica de permisos.Returns a value that indicates whether the permission can be represented as unrestricted without any knowledge of the permission semantics.

MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
PermitOnly()

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso a todos los recursos con la excepción del recurso especificado por la instancia actual.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.

(Heredado de CodeAccessPermission)
ToString()

Crea y devuelve una cadena que representa el objeto de permiso actual.Creates and returns a string representation of the current permission object.

(Heredado de CodeAccessPermission)
ToXml()

Crea una codificación XML del objeto de seguridad y su estado actual.Creates an XML encoding of the security object and its current state.

Union(IPermission)

Devuelve un nuevo objeto de permiso que representa la unión del objeto de permiso actual y el objeto de permiso especificado.Returns a new permission object that is the union of the current and specified permission objects.

Implementaciones de interfaz explícitas

IPermission.Demand() (Heredado de CodeAccessPermission)
IStackWalk.Assert() (Heredado de CodeAccessPermission)
IStackWalk.Demand() (Heredado de CodeAccessPermission)
IStackWalk.Deny() (Heredado de CodeAccessPermission)
IStackWalk.PermitOnly() (Heredado de CodeAccessPermission)

Se aplica a

Consulte también: