다음을 통해 공유


MessageQueuePermission 클래스

정의

메시징에 대한 코드 액세스 권한을 제어할 수 있습니다.

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
상속
MessageQueuePermission
특성
구현

예제

다음 코드 예제에서는 여러 인스턴스를 MessageQueuePermission 만들고 속성의 PermissionEntries 사용을 보여 줍니다.


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

생성자

Name Description
MessageQueuePermission()

MessageQueuePermission 클래스의 새 인스턴스를 초기화합니다.

MessageQueuePermission(MessageQueuePermissionAccess, String, String, String)

지정된 액세스 수준, 사용할 컴퓨터, 큐 설명 및 큐 범주를 사용하여 클래스의 MessageQueuePermission 새 인스턴스를 초기화합니다.

MessageQueuePermission(MessageQueuePermissionAccess, String)

지정된 액세스 수준 및 큐 경로를 MessageQueuePermission 사용하여 클래스의 새 인스턴스를 초기화합니다.

MessageQueuePermission(MessageQueuePermissionEntry[])

지정된 권한 액세스 수준 항목을 사용하여 클래스의 MessageQueuePermission 새 인스턴스를 초기화합니다.

MessageQueuePermission(PermissionState)

지정된 사용 권한 상태를 사용하여 클래스의 MessageQueuePermission 새 인스턴스를 초기화합니다.

속성

Name Description
PermissionEntries

이 권한 요청에 대한 사용 권한 항목의 컬렉션을 가져옵니다.

메서드

Name Description
Assert()

호출 코드가 이 메서드를 호출하는 코드를 통해 권한 요구로 보호되는 리소스에 액세스할 수 있음을 선언합니다. 스택의 상위 호출자에게 리소스에 대한 액세스 권한이 부여되지 않은 경우에도 해당 메서드를 호출합니다. 사용하면 Assert() 보안 문제가 발생할 수 있습니다.

(다음에서 상속됨 CodeAccessPermission)
Copy()

현재 권한 개체의 동일한 복사본을 만들고 반환합니다.

Demand()

SecurityException 호출 스택의 모든 호출자에게 현재 인스턴스에서 지정한 권한이 부여되지 않은 경우 런타임에 강제로 실행합니다.

(다음에서 상속됨 CodeAccessPermission)
Deny()
사용되지 않음.
사용되지 않음.

호출 스택의 상위 호출자가 현재 인스턴스에서 지정한 리소스에 액세스하기 위해 이 메서드를 호출하는 코드를 사용하지 못하도록 합니다.

(다음에서 상속됨 CodeAccessPermission)
Equals(Object)

지정된 CodeAccessPermission 개체가 현재 CodeAccessPermission개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 CodeAccessPermission)
FromXml(SecurityElement)

XML 인코딩에서 지정된 상태로 보안 개체를 다시 구성합니다.

GetHashCode()

해시 알고리즘 및 해시 테이블과 같은 데이터 구조에 사용하기에 적합한 개체에 대한 CodeAccessPermission 해시 코드를 가져옵니다.

(다음에서 상속됨 CodeAccessPermission)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
Intersect(IPermission)

현재 사용 권한 개체와 지정된 사용 권한 개체의 교집합을 나타내는 새 사용 권한 개체를 반환합니다.

IsSubsetOf(IPermission)

현재 사용 권한 개체가 지정된 사용 권한 개체의 하위 집합인지 여부를 나타내는 값을 반환합니다.

IsUnrestricted()

사용 권한 의미 체계에 대한 지식 없이 사용 권한을 무제한으로 나타낼 수 있는지 여부를 나타내는 값을 반환합니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
PermitOnly()

호출 스택의 상위 호출자가 현재 인스턴스에서 지정한 리소스를 제외한 모든 리소스에 액세스하기 위해 이 메서드를 호출하는 코드를 사용하지 못하도록 합니다.

(다음에서 상속됨 CodeAccessPermission)
ToString()

현재 권한 개체의 문자열 표현을 만들고 반환합니다.

(다음에서 상속됨 CodeAccessPermission)
ToXml()

보안 개체 및 현재 상태의 XML 인코딩을 만듭니다.

Union(IPermission)

현재 및 지정된 사용 권한 개체의 공용 구조체인 새 사용 권한 개체를 반환합니다.

적용 대상

추가 정보