MessageQueuePermission MessageQueuePermission MessageQueuePermission MessageQueuePermission Class

Definition

Ermöglicht das Steuern von Codezugriffsberechtigungen für Messaging.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
Vererbung
MessageQueuePermissionMessageQueuePermissionMessageQueuePermissionMessageQueuePermission
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel werden mehrere Instanzen von MessageQueuePermission erstellt und die Verwendung PermissionEntries der-Eigenschaft veranschaulicht.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());
        }
    }
}

Konstruktoren

MessageQueuePermission() MessageQueuePermission() MessageQueuePermission() MessageQueuePermission()

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse.Initializes a new instance of the MessageQueuePermission class.

MessageQueuePermission(MessageQueuePermissionAccess, String) MessageQueuePermission(MessageQueuePermissionAccess, String) MessageQueuePermission(MessageQueuePermissionAccess, String) MessageQueuePermission(MessageQueuePermissionAccess, String)

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse mit den angegebenen Zugriffsebenen und dem Pfad der Warteschlange.Initializes a new instance of the MessageQueuePermission class with the specified access levels and the path of the queue.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String) MessageQueuePermission(MessageQueuePermissionAccess, String, String, String) MessageQueuePermission(MessageQueuePermissionAccess, String, String, String) 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.Initializes a new instance of the MessageQueuePermission class with the specified access levels, computer to use, queue description, and queue category.

MessageQueuePermission(MessageQueuePermissionEntry[]) MessageQueuePermission(MessageQueuePermissionEntry[]) MessageQueuePermission(MessageQueuePermissionEntry[]) MessageQueuePermission(MessageQueuePermissionEntry[])

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse mit den angegebenen Berechtigungseinträgen für die Zugriffsebene.Initializes a new instance of the MessageQueuePermission class with the specified permission access level entries.

MessageQueuePermission(PermissionState) MessageQueuePermission(PermissionState) MessageQueuePermission(PermissionState) MessageQueuePermission(PermissionState)

Initialisiert eine neue Instanz der MessageQueuePermission-Klasse mit dem angegebenen Berechtigungszustand.Initializes a new instance of the MessageQueuePermission class with the specified permission state.

Eigenschaften

PermissionEntries PermissionEntries PermissionEntries PermissionEntries

Ruft die Auflistung von Berechtigungseinträgen für diese Berechtigungsanforderung ab.Gets the collection of permission entries for this permissions request.

Methoden

Assert() Assert() Assert() 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.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. Die Verwendung von Assert() kann zu Sicherheitsproblemen führen.Using Assert() can create security issues.

(Inherited from CodeAccessPermission)
Copy() Copy() Copy() Copy()

Erstellt eine identische Kopie des aktuellen Berechtigungsobjekts und gibt diese zurück.Creates and returns an identical copy of the current permission object.

Demand() Demand() Demand() Demand()

Erzwingt zur Laufzeit eine SecurityException, wenn die von der aktuellen Instanz angegebene Berechtigung keinem übergeordneten Aufrufer in der Aufrufliste gewährt wurde.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.

(Inherited from CodeAccessPermission)
Deny() Deny() Deny() Deny()

Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf die von der aktuellen Instanz angegebene Ressource über Code zugreifen, der diese Methode aufruft.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Inherited from CodeAccessPermission)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Inherited from CodeAccessPermission)
FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

Stellt ein Sicherheitsobjekt mit einem angegebenen Zustand aus einer XML-Codierung wieder her.Reconstructs a security object with a specified state from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() 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.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Inherited from CodeAccessPermission)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

Gibt ein neues Berechtigungsobjekt zurück, das die Schnittmenge des aktuellen und des angegebenen Berechtigungsobjekts darstellt.Returns a new permission object that represents the intersection of the current permission object and the specified permission object.

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission)

Gibt einen Wert zurück, der angibt, ob das aktuelle Berechtigungsobjekt eine Teilmenge des angegebenen Berechtigungsobjekts ist.Returns a value that indicates whether the current permission object is a subset of the specified permission object.

IsUnrestricted() IsUnrestricted() IsUnrestricted() IsUnrestricted()

Gibt einen Wert zurück, der angibt, ob die Berechtigung als uneingeschränkt dargestellt werden kann, ohne dass die Berechtigungssemantik bekannt ist.Returns a value that indicates whether the permission can be represented as unrestricted without any knowledge of the permission semantics.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
PermitOnly() PermitOnly() PermitOnly() PermitOnly()

Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf alle außer der von der aktuellen Instanz angegebenen Ressource über den Code zugreifen, der diese Methode aufruft.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.

(Inherited from CodeAccessPermission)
ToString() ToString() ToString() ToString()

Erstellt eine Zeichenfolgenentsprechung des aktuellen Berechtigungsobjekts und gibt diese zurück.Creates and returns a string representation of the current permission object.

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() ToXml()

Erstellt eine XML-Codierung des Sicherheitsobjekts und seines aktuellen Zustands.Creates an XML encoding of the security object and its current state.

Union(IPermission) Union(IPermission) Union(IPermission) Union(IPermission)

Gibt ein neues Berechtigungsobjekt zurück, das die Gesamtmenge des aktuellen und des angegebenen Berechtigungsobjekts ist.Returns a new permission object that is the union of the current and specified permission objects.

Explizite Schnittstellenimplementierungen

IPermission.Demand() IPermission.Demand() IPermission.Demand() IPermission.Demand() Inherited from CodeAccessPermission
IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() Inherited from CodeAccessPermission
IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() Inherited from CodeAccessPermission
IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() Inherited from CodeAccessPermission
IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() Inherited from CodeAccessPermission

Gilt für:

Siehe auch