Condividi tramite


MessageQueuePermission Classe

Definizione

Consente il controllo delle autorizzazioni di accesso al codice per la messaggistica.

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
Ereditarietà
MessageQueuePermission
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente vengono create diverse istanze di MessageQueuePermission e viene illustrato l'uso della PermissionEntries proprietà .


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

Costruttori

Nome Descrizione
MessageQueuePermission()

Inizializza una nuova istanza della classe MessageQueuePermission.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inizializza una nuova istanza della MessageQueuePermission classe con i livelli di accesso specificati, il computer da usare, la descrizione della coda e la categoria della coda.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inizializza una nuova istanza della MessageQueuePermission classe con i livelli di accesso specificati e il percorso della coda.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inizializza una nuova istanza della MessageQueuePermission classe con le voci del livello di accesso di autorizzazione specificate.

MessageQueuePermission(PermissionState)

Inizializza una nuova istanza della MessageQueuePermission classe con lo stato di autorizzazione specificato.

Proprietà

Nome Descrizione
PermissionEntries

Ottiene la raccolta di voci di autorizzazione per questa richiesta di autorizzazioni.

Metodi

Nome Descrizione
Assert()

Dichiara che il codice chiamante può accedere alla risorsa protetta da una richiesta di autorizzazione tramite il codice che chiama questo metodo, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione per accedere alla risorsa. L'uso Assert() di può creare problemi di sicurezza.

(Ereditato da CodeAccessPermission)
Copy()

Crea e restituisce una copia identica dell'oggetto autorizzazione corrente.

Demand()

Forza un oggetto SecurityException in fase di esecuzione se a tutti i chiamanti più in alto nello stack di chiamate non è stata concessa l'autorizzazione specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
Deny()
Obsoleti.
Obsoleti.

Impedisce ai chiamanti più in alto nello stack di chiamate di usare il codice che chiama questo metodo per accedere alla risorsa specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
Equals(Object)

Determina se l'oggetto specificato CodeAccessPermission è uguale all'oggetto corrente CodeAccessPermission.

(Ereditato da CodeAccessPermission)
FromXml(SecurityElement)

Ricostruisce un oggetto di sicurezza con uno stato specificato da una codifica XML.

GetHashCode()

Ottiene un codice hash per l'oggetto adatto per l'uso CodeAccessPermission negli algoritmi di hash e nelle strutture di dati, ad esempio una tabella hash.

(Ereditato da CodeAccessPermission)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Intersect(IPermission)

Restituisce un nuovo oggetto autorizzazione che rappresenta l'intersezione dell'oggetto autorizzazione corrente e dell'oggetto autorizzazione specificato.

IsSubsetOf(IPermission)

Restituisce un valore che indica se l'oggetto autorizzazione corrente è un subset dell'oggetto autorizzazione specificato.

IsUnrestricted()

Restituisce un valore che indica se l'autorizzazione può essere rappresentata come senza restrizioni senza alcuna conoscenza della semantica delle autorizzazioni.

MemberwiseClone()

Crea una copia superficiale dell'oggetto corrente Object.

(Ereditato da Object)
PermitOnly()

Impedisce ai chiamanti più in alto nello stack di chiamate di usare il codice che chiama questo metodo per accedere a tutte le risorse, ad eccezione della risorsa specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
ToString()

Crea e restituisce una rappresentazione di stringa dell'oggetto autorizzazione corrente.

(Ereditato da CodeAccessPermission)
ToXml()

Crea una codifica XML dell'oggetto di sicurezza e del relativo stato corrente.

Union(IPermission)

Restituisce un nuovo oggetto autorizzazione che rappresenta l'unione degli oggetti autorizzazione correnti e specificati.

Si applica a

Vedi anche