Udostępnij za pośrednictwem


MessageQueuePermission Klasa

Definicja

Umożliwia kontrolę nad uprawnieniami dostępu do kodu na potrzeby obsługi komunikatów.

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
Dziedziczenie
MessageQueuePermission
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu tworzy kilka wystąpień MessageQueuePermission obiektu i demonstruje użycie PermissionEntries właściwości .


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

MessageQueuePermission()

Inicjuje nowe wystąpienie klasy MessageQueuePermission.

MessageQueuePermission(MessageQueuePermissionAccess, String)

Inicjuje MessageQueuePermission nowe wystąpienie klasy z określonymi poziomami dostępu i ścieżką kolejki.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

Inicjuje MessageQueuePermission nowe wystąpienie klasy z określonymi poziomami dostępu, komputerem do użycia, opisem kolejki i kategorią kolejki.

MessageQueuePermission(MessageQueuePermissionEntry[])

Inicjuje MessageQueuePermission nowe wystąpienie klasy z określonymi wpisami poziomu dostępu uprawnień.

MessageQueuePermission(PermissionState)

Inicjuje MessageQueuePermission nowe wystąpienie klasy o określonym stanie uprawnień.

Właściwości

PermissionEntries

Pobiera kolekcję wpisów uprawnień dla tego żądania uprawnień.

Metody

Assert()

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie uprawnień za pośrednictwem kodu, który wywołuje tę metodę, nawet jeśli obiekty wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Za pomocą polecenia Assert() można tworzyć problemy z zabezpieczeniami.

(Odziedziczone po CodeAccessPermission)
Copy()

Tworzy i zwraca identyczną kopię bieżącego obiektu uprawnień.

Demand()

Wymusza w SecurityException czasie wykonywania, jeśli wszystkie elementy wywołujące wyższe w stosie wywołań nie otrzymały uprawnienia określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Deny()
Przestarzałe.
Przestarzałe.

Zapobiega wywoływaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Equals(Object)

Określa, czy określony CodeAccessPermission obiekt jest równy bieżącemu CodeAccessPermission.

(Odziedziczone po CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruuje obiekt zabezpieczeń o określonym stanie z kodowania XML.

GetHashCode()

Pobiera kod skrótu CodeAccessPermission dla obiektu, który jest odpowiedni do użycia w algorytmach tworzenia skrótów i strukturach danych, takich jak tabela skrótów.

(Odziedziczone po CodeAccessPermission)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
Intersect(IPermission)

Zwraca nowy obiekt uprawnień reprezentujący przecięcie bieżącego obiektu uprawnień i określony obiekt uprawnień.

IsSubsetOf(IPermission)

Zwraca wartość wskazującą, czy bieżący obiekt uprawnień jest podzbiorem określonego obiektu uprawnień.

IsUnrestricted()

Zwraca wartość wskazującą, czy uprawnienie może być reprezentowane jako nieograniczone bez znajomości semantyki uprawnień.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
PermitOnly()

Zapobiega wywoływaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do wszystkich zasobów z wyjątkiem zasobu określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
ToString()

Tworzy i zwraca ciąg reprezentujący bieżący obiekt uprawnień.

(Odziedziczone po CodeAccessPermission)
ToXml()

Tworzy kodowanie XML obiektu zabezpieczeń i jego bieżący stan.

Union(IPermission)

Zwraca nowy obiekt uprawnień, który jest połączeniem bieżących i określonych obiektów uprawnień.

Dotyczy

Zobacz też