MessageQueuePermission Classe

Definizione

Consente di controllare le autorizzazioni di accesso al codice per la messaggistica.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
Ereditarietà
MessageQueuePermission
Attributi
Implementazioni

Esempi

Nell'esempio di codice seguente vengono create diverse MessageQueuePermission istanze di e viene illustrato l' PermissionEntries utilizzo della proprietà.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());
        }
    }
}

Costruttori

MessageQueuePermission()

Inizializza una nuova istanza della classe MessageQueuePermission.Initializes a new instance of the MessageQueuePermission class.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inizializza una nuova istanza della classe MessageQueuePermission con i livelli di accesso specificati e il percorso della coda.Initializes a new instance of the MessageQueuePermission class with the specified access levels and the path of the queue.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inizializza una nuova istanza della classe MessageQueuePermission con i livelli di accesso specificati, il computer da utilizzare, la descrizione della coda e la categoria alla quale essa appartiene.Initializes a new instance of the MessageQueuePermission class with the specified access levels, computer to use, queue description, and queue category.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inizializza una nuova istanza della classe MessageQueuePermission con le voci del livello di accesso alle autorizzazioni specificate.Initializes a new instance of the MessageQueuePermission class with the specified permission access level entries.

MessageQueuePermission(PermissionState)

Inizializza una nuova istanza della classe MessageQueuePermission con lo stato di autorizzazione specificato.Initializes a new instance of the MessageQueuePermission class with the specified permission state.

Proprietà

PermissionEntries

Ottiene l'insieme di voci di autorizzazione per la richiesta di autorizzazioni.Gets the collection of permission entries for this permissions request.

Metodi

Assert()

Dichiara che il codice chiamante può accedere alla risorsa protetta da una richiesta di autorizzazione tramite il codice che chiama il metodo, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione per accedere alla risorsa.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. L'uso di Assert() può creare problemi di sicurezza.Using Assert() can create security issues.

(Ereditato da CodeAccessPermission)
Copy()

Viene creata e restituita una copia identica dell'oggetto autorizzazione corrente.Creates and returns an identical copy of the current permission object.

Demand()

Forza un oggetto SecurityException in fase di esecuzione se tutti i chiamanti in posizioni superiori nello stack di chiamate non hanno l'autorizzazione specificata dall'istanza corrente.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.

(Ereditato da CodeAccessPermission)
Deny()

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere alla risorsa specificata dall'istanza corrente.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Ereditato da CodeAccessPermission)
Equals(Object)

Consente di determinare se l'oggetto CodeAccessPermission specificato è uguale all'oggetto CodeAccessPermission corrente.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Ereditato da CodeAccessPermission)
FromXml(SecurityElement)

Ricostruisce un oggetto di sicurezza con uno stato specificato da una codifica XML.Reconstructs a security object with a specified state from an XML encoding.

GetHashCode()

Ottiene un codice hash per l'oggetto CodeAccessPermission adatto per l'uso in algoritmi di hash e in strutture di dati, come una tabella 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.

(Ereditato da CodeAccessPermission)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
Intersect(IPermission)

Restituisce un nuovo oggetto autorizzazione che rappresenta l'intersezione tra l'oggetto autorizzazione corrente e l'oggetto autorizzazione specificato.Returns a new permission object that represents the intersection of the current permission object and the specified permission object.

IsSubsetOf(IPermission)

Restituisce un valore che indica se l'oggetto autorizzazione corrente è un sottoinsieme dell'oggetto autorizzazione specificato.Returns a value that indicates whether the current permission object is a subset of the specified permission object.

IsUnrestricted()

Restituisce un valore che indica se l’autorizzazione può essere rappresentata come priva di restrizioni senza la conoscenza della semantica delle autorizzazioni.Returns a value that indicates whether the permission can be represented as unrestricted without any knowledge of the permission semantics.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
PermitOnly()

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere a tutte le risorse eccetto quella specificata dall'istanza corrente.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.

(Ereditato da CodeAccessPermission)
ToString()

Crea e restituisce una rappresentazione in forma di stringa dell'oggetto di autorizzazione corrente.Creates and returns a string representation of the current permission object.

(Ereditato da CodeAccessPermission)
ToXml()

Crea una codifica XML dell'oggetto di sicurezza e del suo stato corrente.Creates an XML encoding of the security object and its current state.

Union(IPermission)

Restituisce un nuovo oggetto autorizzazione che rappresenta l'unione tra l'oggetto autorizzazione corrente e l'oggetto autorizzazione specificato.Returns a new permission object that is the union of the current and specified permission objects.

Implementazioni dell'interfaccia esplicita

IPermission.Demand() (Ereditato da CodeAccessPermission)
IStackWalk.Assert() (Ereditato da CodeAccessPermission)
IStackWalk.Demand() (Ereditato da CodeAccessPermission)
IStackWalk.Deny() (Ereditato da CodeAccessPermission)
IStackWalk.PermitOnly() (Ereditato da CodeAccessPermission)

Si applica a

Vedi anche