MessageQueuePermission Osztály

Definíció

Lehetővé teszi az üzenetküldéshez szükséges kódhozzáférési engedélyek vezérlését.

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
Öröklődés
MessageQueuePermission
Attribútumok
Megvalósítás

Példák

Az alábbi példakód több példányt MessageQueuePermission hoz létre, és bemutatja a PermissionEntries tulajdonság használatát.


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

Konstruktorok

Name Description
MessageQueuePermission()

Inicializálja a MessageQueuePermission osztály új példányát.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inicializálja az osztály új példányát a megadott hozzáférési szintekkel, a használni kívánt számítógéppel, az üzenetsor leírásával és az MessageQueuePermission üzenetsor kategóriájával.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inicializálja az osztály új példányát a MessageQueuePermission megadott hozzáférési szintekkel és az üzenetsor elérési útjával.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicializálja az osztály új példányát MessageQueuePermission a megadott jogosultsági hozzáférési szintű bejegyzésekkel.

MessageQueuePermission(PermissionState)

Inicializálja az osztály új példányát MessageQueuePermission a megadott engedélyállapottal.

Tulajdonságok

Name Description
PermissionEntries

Lekéri az engedélykérelmekhez tartozó engedélybejegyzések gyűjteményét.

Metódusok

Name Description
Assert()

Deklarálja, hogy a hívó kód az ezt a metódust meghívó kódon keresztül hozzáférhet az engedélyigény által védett erőforráshoz, még akkor is, ha a veremben magasabb szintű hívók nem kaptak engedélyt az erőforrás elérésére. A használat Assert() biztonsági problémákat okozhat.

(Öröklődés forrása CodeAccessPermission)
Copy()

Létrehozza és visszaadja az aktuális engedélyobjektum azonos másolatát.

Demand()

SecurityException Futásidőben kényszerít, ha a hívásverem összes magasabb hívója nem kapta meg az aktuális példány által megadott engedélyt.

(Öröklődés forrása CodeAccessPermission)
Deny()
Elavult.
Elavult.

Megakadályozza, hogy a hívásverem magasabb hívói az ezt a metódust meghívó kódot használják az aktuális példány által megadott erőforrás eléréséhez.

(Öröklődés forrása CodeAccessPermission)
Equals(Object)

Meghatározza, hogy a megadott CodeAccessPermission objektum egyenlő-e az aktuális CodeAccessPermissionobjektummal.

(Öröklődés forrása CodeAccessPermission)
FromXml(SecurityElement)

Egy megadott állapotú biztonsági objektum rekonstruálása XML-kódolásból.

GetHashCode()

Lekéri az CodeAccessPermission objektum kivonatkódját, amely alkalmas kivonatoló algoritmusokban és adatstruktúrákban, például kivonattáblákban való használatra.

(Öröklődés forrása CodeAccessPermission)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
Intersect(IPermission)

Egy új engedélyobjektumot ad vissza, amely az aktuális engedélyobjektum és a megadott engedélyobjektum metszetét jelöli.

IsSubsetOf(IPermission)

Olyan értéket ad vissza, amely jelzi, hogy az aktuális engedélyobjektum a megadott engedélyobjektum részhalmaza-e.

IsUnrestricted()

Olyan értéket ad vissza, amely azt jelzi, hogy az engedély korlátlanként jeleníthető-e meg az engedély szemantikájának ismerete nélkül.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
PermitOnly()

Megakadályozza, hogy a hívásverem magasabb hívói az ezt a metódust meghívó kódot használják az összes erőforrás eléréséhez, kivéve az aktuális példány által megadott erőforrást.

(Öröklődés forrása CodeAccessPermission)
ToString()

Létrehozza és visszaadja az aktuális engedélyobjektum sztringképét.

(Öröklődés forrása CodeAccessPermission)
ToXml()

Xml-kódolást hoz létre a biztonsági objektumról és annak aktuális állapotáról.

Union(IPermission)

Egy új engedélyobjektumot ad vissza, amely az aktuális és a megadott engedélyobjektumok egyesítését adja vissza.

A következőre érvényes:

Lásd még