MessageQueuePermission Class
TOC
Collapse the table of content
Expand the table of content

MessageQueuePermission Class

Allows control of code access permissions for messaging.

System.Object
  System.Security.CodeAccessPermission
    System.Messaging.MessageQueuePermission

Namespace:  System.Messaging
Assembly:  System.Messaging (in System.Messaging.dll)

'Declaration
<SerializableAttribute> _
Public NotInheritable Class MessageQueuePermission _
	Inherits CodeAccessPermission _
	Implements IUnrestrictedPermission

The MessageQueuePermission type exposes the following members.

  NameDescription
Public methodMessageQueuePermissionInitializes a new instance of the MessageQueuePermission class.
Public methodMessageQueuePermission(MessageQueuePermissionEntry())Initializes a new instance of the MessageQueuePermission class with the specified permission access level entries.
Public methodMessageQueuePermission(PermissionState)Initializes a new instance of the MessageQueuePermission class with the specified permission state.
Public methodMessageQueuePermission(MessageQueuePermissionAccess, String)Initializes a new instance of the MessageQueuePermission class with the specified access levels and the path of the queue.
Public methodMessageQueuePermission(MessageQueuePermissionAccess, String, String, String)Initializes a new instance of the MessageQueuePermission class with the specified access levels, computer to use, queue description, and queue category.
Top

  NameDescription
Public propertyPermissionEntriesGets the collection of permission entries for this permissions request.
Top

  NameDescription
Public methodAssertDeclares 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. Using Assert can create security issues. (Inherited from CodeAccessPermission.)
Public methodCopyCreates and returns an identical copy of the current permission object. (Overrides CodeAccessPermission.Copy.)
Public methodDemandForces 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.)
Public methodDeny Obsolete. 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.)
Public methodEqualsDetermines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission. (Inherited from CodeAccessPermission.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodFromXmlReconstructs a security object with a specified state from an XML encoding. (Overrides CodeAccessPermission.FromXml(SecurityElement).)
Public methodGetHashCodeGets 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.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIntersectReturns a new permission object that represents the intersection of the current permission object and the specified permission object. (Overrides CodeAccessPermission.Intersect(IPermission).)
Public methodIsSubsetOfReturns a value that indicates whether the current permission object is a subset of the specified permission object. (Overrides CodeAccessPermission.IsSubsetOf(IPermission).)
Public methodIsUnrestrictedReturns a value that indicates whether the permission can be represented as unrestricted without any knowledge of the permission semantics.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodPermitOnlyPrevents 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.)
Public methodToStringCreates and returns a string representation of the current permission object. (Inherited from CodeAccessPermission.)
Public methodToXmlCreates an XML encoding of the security object and its current state. (Overrides CodeAccessPermission.ToXml.)
Public methodUnionReturns a new permission object that is the union of the current and specified permission objects. (Overrides CodeAccessPermission.Union(IPermission).)
Top

The following code example creates several instances of MessageQueuePermission and demonstrates the use of the PermissionEntries property.



Imports System
Imports System.Messaging

Public Class MessageQueuePermissionExample
    Public Shared Sub Main()
        ' Create a new instance of the class.
        Dim example As 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()
    End Sub

    ' Creates a new queue.
    Public Shared Sub CreateQueue(ByVal queuePath As String, ByVal transactional As Boolean)
        If Not MessageQueue.Exists(queuePath) Then
            MessageQueue.Create(queuePath, transactional)
        Else
            Console.WriteLine(queuePath & " already exists.")
        End If
    End Sub

    ' Demonstrates the following MessageQueuePermission constructor:
    ' public #ctor ()
    Public Sub CreatePermission1()
        ' Create a new instance of MessageQueuePermission.
        Dim permission As New MessageQueuePermission()
    End Sub

    ' Demonstrates the following MessageQueuePermission constructor:
    ' public #ctor (MessageQueuePermissionAccess permissionAccess,
    '  String path)
    Public Sub CreatePermission2()
        ' Create a new instance of MessageQueuePermission.
        Dim permission As New MessageQueuePermission(MessageQueuePermissionAccess.Receive, ".\exampleQueue")
    End Sub

    ' Demonstrates the following MessageQueuePermission constructor:
    ' public #ctor (MessageQueuePermissionAccess permissionAccess,
    '  String machineName, String label, String category)
    Public Sub CreatePermission3()
        ' Connect to a queue on the local computer.
        Dim queue As New MessageQueue(".\exampleQueue")

        ' Create a new instance of MessageQueuePermission.
        Dim queueCategory As String = queue.Category.ToString()
        Dim machineName As String = queue.MachineName
        Dim label As String = queue.Label
        Dim permission As New MessageQueuePermission(MessageQueuePermissionAccess.Receive, machineName, label, queueCategory)
    End Sub

    ' Demonstrates the following MessageQueuePermission constructor:
    'public #ctor (MessageQueuePermissionEntry[] permissionAccessEntries)
    Public Sub CreatePermission4()
        ' Connect to a queue on the local computer.
        Dim queue As New MessageQueue(".\exampleQueue")

        ' Create an array of type MessageQueuePermissionEntry.
        Dim entries(0) As MessageQueuePermissionEntry

        ' Create a new instance of MessageQueuePermissionEntry and place the
        ' instance in the array.
        Dim machineName As String = queue.MachineName
        Dim label As String = queue.Label
        entries(0) = New MessageQueuePermissionEntry(MessageQueuePermissionAccess.Receive, machineName, label, queue.Category.ToString())

        ' Create a new instance of MessageQueuePermission.
        Dim permission As New MessageQueuePermission(entries)
    End Sub

    ' Demonstrates the following MessageQueuePermission constructor:
    'public #ctor (PermissionState state)
    Public Sub CreatePermission5()
        ' Create a new instance of MessageQueuePermission.
        Dim permission As New MessageQueuePermission(System.Security.Permissions.PermissionState.Unrestricted)
    End Sub

    Public Sub GetPermissionEntries()

        ' Connect to a queue on the local computer.
        Dim queue As New MessageQueue(".\exampleQueue")

        ' Create an array of type MessageQueuePermissionEntry.
        Dim entries(0) As MessageQueuePermissionEntry

        ' Create a new instance of MessageQueuePermissionEntry and place the
        ' instance in the array.
        Dim machineName As String = queue.MachineName
        Dim label As String = queue.Label
        entries(0) = New MessageQueuePermissionEntry(MessageQueuePermissionAccess.Receive, machineName, label, queue.Category.ToString())

        ' Create a new instance of MessageQueuePermission.
        Dim permission As New MessageQueuePermission(entries)

        ' Create a new instance of MessageQueuePermissionEntryCollection and
        ' use it to retrieve the permission's PermissionEntries property
        ' value.
        Dim collection As MessageQueuePermissionEntryCollection = permission.PermissionEntries

        ' Loop through the collection.
        For Each 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())
        Next entry
    End Sub
End Class



.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

ADD
Show:
© 2016 Microsoft