SymmetricSecurityBindingElement.MessageProtectionOrder Property


Gets or sets the order of message encryption and signing for this binding.

 property System::ServiceModel::Security::MessageProtectionOrder MessageProtectionOrder { System::ServiceModel::Security::MessageProtectionOrder get(); void set(System::ServiceModel::Security::MessageProtectionOrder value); };
public System.ServiceModel.Security.MessageProtectionOrder MessageProtectionOrder { get; set; }
member this.MessageProtectionOrder : System.ServiceModel.Security.MessageProtectionOrder with get, set
Public Property MessageProtectionOrder As MessageProtectionOrder

Property Value

The MessageProtectionOrder that specifies how the message is protected. The default is SignBeforeEncrypt.


set and value is undefined.


The following code shows how to set this property.

// Create a SymmetricSecurityBindingElement.
SymmetricSecurityBindingElement ssbe = 
    new SymmetricSecurityBindingElement();

// Set the algorithm suite to one that uses 128-bit keys.
ssbe.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic128;

   // Set MessageProtectionOrder to SignBeforeEncrypt.
ssbe.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;



If there is nothing in the message that is encrypted, the signature element is not encrypted even when the MessageProtectionOrder property is set to SignBeforeEncryptAndEncryptSignature. This behavior occurs even with system-provided bindings. However, the WSDL generated by WCF still contains the <sp:EncryptSignature> assertion.

For a listing of the members and their descriptions, see MessageProtectionOrder.

Applies to