Sdílet prostřednictvím


MessageQueuePermission Třída

Definice

Umožňuje řídit přístupová oprávnění kódu pro zasílání zpráv.

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
Dědičnost
MessageQueuePermission
Atributy
Implementuje

Příklady

Následující příklad kódu vytvoří několik instancí MessageQueuePermission a demonstruje použití PermissionEntries vlastnosti.


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

Konstruktory

Name Description
MessageQueuePermission()

Inicializuje novou instanci MessageQueuePermission třídy.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inicializuje novou instanci MessageQueuePermission třídy se zadanými úrovněmi přístupu, počítač pro použití, popis fronty a kategorie fronty.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inicializuje novou instanci MessageQueuePermission třídy se zadanými úrovněmi přístupu a cestou fronty.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicializuje novou instanci MessageQueuePermission třídy se zadanými položkami úrovně přístupu oprávnění.

MessageQueuePermission(PermissionState)

Inicializuje novou instanci MessageQueuePermission třídy se zadaným stavem oprávnění.

Vlastnosti

Name Description
PermissionEntries

Získá kolekci položek oprávnění pro tuto žádost o oprávnění.

Metody

Name Description
Assert()

Deklaruje, že volající kód má přístup k prostředku chráněnému požadavkem oprávnění prostřednictvím kódu, který tuto metodu volá, i když volajícím vyšší v zásobníku nebyla udělena oprávnění pro přístup k prostředku. Použití Assert() může vytvářet problémy se zabezpečením.

(Zděděno od CodeAccessPermission)
Copy()

Vytvoří a vrátí identickou kopii aktuálního objektu oprávnění.

Demand()

SecurityException Vynutí čas spuštění, pokud všichni volající vyšší v zásobníku volání nebyl uděleni oprávnění určená aktuální instancí.

(Zděděno od CodeAccessPermission)
Deny()
Zastaralé.
Zastaralé.

Zabrání volajícím ve vyšší části zásobníku volání použít kód, který volá tuto metodu pro přístup k prostředku určenému aktuální instancí.

(Zděděno od CodeAccessPermission)
Equals(Object)

Určuje, zda zadaný CodeAccessPermission objekt je roven aktuální CodeAccessPermission.

(Zděděno od CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruuje objekt zabezpečení se zadaným stavem z kódování XML.

GetHashCode()

Získá hash kód pro CodeAccessPermission objekt, který je vhodný pro použití v hashovací algoritmy a datové struktury, jako je hash tabulka.

(Zděděno od CodeAccessPermission)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
Intersect(IPermission)

Vrátí nový objekt oprávnění, který představuje průnik aktuálního objektu oprávnění a zadaný objekt oprávnění.

IsSubsetOf(IPermission)

Vrátí hodnotu, která určuje, zda je aktuální objekt oprávnění podmnožinou zadaného objektu oprávnění.

IsUnrestricted()

Vrátí hodnotu, která označuje, zda lze oprávnění reprezentovat jako neomezené bez jakýchkoli znalostí sémantiky oprávnění.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
PermitOnly()

Zabrání volajícím v zásobníku volání používat kód, který volá tuto metodu pro přístup ke všem prostředkům s výjimkou prostředku určeného aktuální instancí.

(Zděděno od CodeAccessPermission)
ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuálního objektu oprávnění.

(Zděděno od CodeAccessPermission)
ToXml()

Vytvoří kódování XML objektu zabezpečení a jeho aktuální stav.

Union(IPermission)

Vrátí nový objekt oprávnění, který je sjednocením aktuálních a zadaných objektů oprávnění.

Platí pro

Viz také