Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

MessageQueuePermission (Clase)

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

System.Object
  System.Security.CodeAccessPermission
    System.Messaging.MessageQueuePermission

Espacio de nombres:  System.Messaging
Ensamblado:  System.Messaging (en System.Messaging.dll)
[SerializableAttribute]
public sealed class MessageQueuePermission : CodeAccessPermission, 
	IUnrestrictedPermission

El tipo MessageQueuePermission expone los siguientes miembros.

  NombreDescripción
Método públicoMessageQueuePermission()Inicializa una nueva instancia de la clase MessageQueuePermission.
Método públicoMessageQueuePermission(MessageQueuePermissionEntry[])Inicializa una nueva instancia de la clase MessageQueuePermission con las entradas de nivel de acceso de permiso especificadas.
Método públicoMessageQueuePermission(PermissionState)Inicializa una nueva instancia de la clase MessageQueuePermission con el estado de permiso especificado.
Método públicoMessageQueuePermission(MessageQueuePermissionAccess, String)Inicializa una nueva instancia de la clase MessageQueuePermission con los niveles de acceso especificados y la ruta de acceso de la cola.
Método públicoMessageQueuePermission(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.
Arriba
  NombreDescripción
Propiedad públicaPermissionEntriesObtiene la colección de entradas de permiso para esta solicitud de permisos.
Arriba
  NombreDescripción
Método públicoAssertDeclara que el código de llamada puede tener acceso al recurso protegido mediante una petición de permiso a través del código que llama a este método, aunque los llamadores que se encuentran en una posición superior de la pila no dispongan de permiso de acceso al recurso. La utilización de Assert puede crear problemas de seguridad. (Se hereda de CodeAccessPermission).
Método públicoCopyCrea y devuelve una copia idéntica del objeto de permiso actual. (Invalida a CodeAccessPermission.Copy()).
Método públicoDemandFuerza 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. (Se hereda de CodeAccessPermission).
Método públicoDeny Obsoleto. 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. (Se hereda de CodeAccessPermission).
Método públicoEqualsDetermina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual. (Se hereda de CodeAccessPermission).
Método públicoFromXmlReconstruye un objeto de seguridad con un estado especificado a partir de codificación XML. (Invalida a CodeAccessPermission.FromXml(SecurityElement)).
Método públicoGetHashCodeObtiene un código hash para el objeto CodeAccessPermission que sea compatible con los algoritmos hash y estructuras de datos como las tablas hash. (Se hereda de CodeAccessPermission).
Método públicoGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método públicoIntersectDevuelve un objeto de permiso nuevo que representa la intersección del objeto de permiso actual y el objeto de permiso especificado. (Invalida a CodeAccessPermission.Intersect(IPermission)).
Método públicoIsSubsetOfDevuelve un valor que indica si el objeto de permiso actual es un subconjunto del objeto de permiso especificado. (Invalida a CodeAccessPermission.IsSubsetOf(IPermission)).
Método públicoIsUnrestrictedDevuelve un valor que indica si el permiso puede representarse como permiso no restringido sin conocimientos sobre la semántica de permisos.
Método públicoPermitOnlyEvita 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. (Se hereda de CodeAccessPermission).
Método públicoToStringCrea y devuelve una cadena que representa el objeto de permiso actual. (Se hereda de CodeAccessPermission).
Método públicoToXmlCrea codificación XML del objeto de seguridad y de su estado actual. (Invalida a CodeAccessPermission.ToXml()).
Método públicoUnionDevuelve un nuevo objeto de permiso que representa la unión del objeto de permiso actual y el objeto de permiso especificado. (Invalida a CodeAccessPermission.Union(IPermission)).
Arriba

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



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



.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.