Freigeben über


MessageQueuePermission Klasse

Definition

Ermöglicht das Steuern 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 von MessageQueuePermission erstellt 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

MessageQueuePermission()

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse.

MessageQueuePermission(MessageQueuePermissionAccess, String)

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

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse mit den angegebenen Zugriffsebenen, dem zu verwendenden Computer, einer Warteschlangenbeschreibung sowie der Warteschlangenkategorie.

MessageQueuePermission(MessageQueuePermissionEntry[])

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse mit den angegebenen Berechtigungseinträgen für die Zugriffsebene.

MessageQueuePermission(PermissionState)

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse mit dem angegebenen Berechtigungszustand.

Eigenschaften

PermissionEntries

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

Methoden

Assert()

Deklariert, dass der aufrufende Code auf die durch eine Berechtigungsforderung geschützte Ressource über den diese Methode aufrufenden Code zugreifen kann, auch wenn Aufrufern einer höheren Ebene im Stapel keine Berechtigung zum Zugreifen auf die Ressource erteilt wurde. Die Verwendung von Assert() kann zu Sicherheitsproblemen führen.

(Geerbt von CodeAccessPermission)
Copy()

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

Demand()

Erzwingt zur Laufzeit eine SecurityException, wenn nicht allen Aufrufern, die in der Aufrufliste höher eingestuft sind, die Berechtigung gewährt wurde, die von der aktuellen Instanz angegeben wird.

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

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code verwenden, der diese Methode aufruft, um auf die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.

(Geerbt von CodeAccessPermission)
Equals(Object)

Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind.

(Geerbt von CodeAccessPermission)
FromXml(SecurityElement)

Stellt ein Sicherheitsobjekt mit einem angegebenen Zustand aus einer XML-Codierung wieder her.

GetHashCode()

Ruft einen Hashcode für das CodeAccessPermission-Objekt ab, das sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z.B. in einer Hashtabelle.

(Geerbt von CodeAccessPermission)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Intersect(IPermission)

Gibt ein neues Berechtigungsobjekt zurück, das die Schnittmenge des aktuellen und des angegebenen Berechtigungsobjekts 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 als uneingeschränkt dargestellt werden kann, ohne dass die Berechtigungssemantik bekannt ist.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
PermitOnly()

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code, der diese Methode aufruft, verwenden, um auf alle Ressourcen außer die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.

(Geerbt von CodeAccessPermission)
ToString()

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

(Geerbt von CodeAccessPermission)
ToXml()

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

Union(IPermission)

Gibt ein neues Berechtigungsobjekt zurück, das die Gesamtmenge des aktuellen und des angegebenen Berechtigungsobjekts ist.

Gilt für:

Weitere Informationen