MessageQueue.EncryptionRequired Property


Gets or sets a value that indicates whether the queue accepts only non-private (non-encrypted) messages.

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

public EncryptionRequired EncryptionRequired { get; set; }

Property Value

Type: System.Messaging.EncryptionRequired

One of the EncryptionRequired values. The default is None.

Exception Condition

An error occurred when accessing a Message Queuing method.

When you specify that encryption is required for the messages sent to a queue, only the message bodies are encrypted. The other members (for example, the Label and SenderId properties) cannot be encrypted.

Setting this property modifies the Message Queuing queue. Therefore, any other MessageQueue instances are affected by the change.

Encrypting a message makes the message private. You can specify the queue's encryption requirement to be None, Body, or Optional by setting the EncryptionRequired property appropriately. The UseEncryption setting of the message must correspond to the encryption requirement of the queue. If the message is not encrypted but the queue specifies Body, or if the message is encrypted but the queue specifies None, the message is rejected by the queue. If the sending application requests a negative acknowledgment message in this event, Message Queuing indicates the message's rejection to the sending application. If the UseDeadLetterQueue property is true, a message that fails encryption is sent to the dead-letter queue. Otherwise, the message is lost.

The following table shows whether this property is available in various Workgroup modes.

Workgroup mode


Local computer


Local computer and direct format name


Remote computer


Remote computer and direct format name


The following code example gets and sets the value of a message queue's EncryptionRequired property.

// Set the queue's EncryptionRequired property value.
queue.EncryptionRequired = System.Messaging.EncryptionRequired.Optional;

// Display the new value of the queue's EncryptionRequired property.
Console.WriteLine("MessageQueue.EncryptionRequired: {0}",

.NET Framework
Available since 1.1
Return to top