Freigeben über


MessageQueuePermission Klasse

Definition

Ermöglicht die Steuerung von Codezugriffsberechtigungen für 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
[<System.Serializable>]
type MessageQueuePermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class MessageQueuePermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Vererbung
MessageQueuePermission
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel werden mehrere Instanzen erstellt MessageQueuePermission und die Verwendung der PermissionEntries Eigenschaft veranschaulicht.


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

Konstruktoren

Name Beschreibung
MessageQueuePermission()

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Initialisiert eine neue Instanz der MessageQueuePermission Klasse mit den angegebenen Zugriffsebenen, Dem Computer, der verwendet werden soll, der Warteschlangenbeschreibung und der Warteschlangenkategorie.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Initialisiert eine neue Instanz der MessageQueuePermission Klasse mit den angegebenen Zugriffsebenen und dem Pfad der Warteschlange.

MessageQueuePermission(MessageQueuePermissionEntry[])

Initialisiert eine neue Instanz der MessageQueuePermission Klasse mit den angegebenen Einträgen auf Berechtigungszugriffsstufe.

MessageQueuePermission(PermissionState)

Initialisiert eine neue Instanz der MessageQueuePermission Klasse mit dem angegebenen Berechtigungsstatus.

Eigenschaften

Name Beschreibung
PermissionEntries

Ruft die Sammlung von Berechtigungseinträgen für diese Berechtigungsanforderung ab.

Methoden

Name Beschreibung
Assert()

Deklariert, dass der aufrufende Code über den Code, der diese Methode aufruft, auf die Ressource zugreifen kann, auch wenn Aufrufern im Stapel nicht die Berechtigung zum Zugriff auf die Ressource erteilt wurden. Die Verwendung Assert() kann Sicherheitsprobleme erstellen.

(Geerbt von CodeAccessPermission)
Copy()

Erstellt und gibt eine identische Kopie des aktuellen Berechtigungsobjekts zurück.

Demand()

Erzwingt zur Laufzeit, SecurityException wenn allen Anrufern, die höher im Aufrufstapel sind, nicht die von der aktuellen Instanz angegebene Berechtigung erteilt wurde.

(Geerbt von CodeAccessPermission)
Deny()
Veraltet.
Veraltet.

Verhindert, dass Aufrufer im Aufrufstapel den Code verwenden, der diese Methode aufruft, um auf die von der aktuellen Instanz angegebene Ressource zuzugreifen.

(Geerbt von CodeAccessPermission)
Equals(Object)

Bestimmt, ob das angegebene CodeAccessPermission Objekt dem aktuellen CodeAccessPermissionentspricht.

(Geerbt von CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruiert ein Sicherheitsobjekt mit einem angegebenen Zustand aus einer XML-Codierung.

GetHashCode()

Ruft einen Hashcode für das CodeAccessPermission Objekt ab, das für die Verwendung in Hashingalgorithmen und Datenstrukturen wie einer Hashtabelle geeignet ist.

(Geerbt von CodeAccessPermission)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Intersect(IPermission)

Gibt ein neues Berechtigungsobjekt zurück, das die Schnittmenge des aktuellen Berechtigungsobjekts und das angegebene Berechtigungsobjekt darstellt.

IsSubsetOf(IPermission)

Gibt einen Wert zurück, der angibt, ob das aktuelle Berechtigungsobjekt eine Teilmenge des angegebenen Berechtigungsobjekts ist.

IsUnrestricted()

Gibt einen Wert zurück, der angibt, ob die Berechtigung ohne Kenntnisse der Berechtigungsemantik als uneingeschränkt dargestellt werden kann.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
PermitOnly()

Verhindert, dass Aufrufer im Aufrufstapel den Code verwenden, der diese Methode aufruft, um auf alle Ressourcen zuzugreifen, mit Ausnahme der von der aktuellen Instanz angegebenen Ressource.

(Geerbt von CodeAccessPermission)
ToString()

Erstellt und gibt eine Zeichenfolgendarstellung des aktuellen Berechtigungsobjekts zurück.

(Geerbt von CodeAccessPermission)
ToXml()

Erstellt eine XML-Codierung des Sicherheitsobjekts und des aktuellen Zustands.

Union(IPermission)

Gibt ein neues Berechtigungsobjekt zurück, das die Vereinigung der aktuellen und angegebenen Berechtigungsobjekte darstellt.

Gilt für:

Weitere Informationen