AsymmetricSecurityBindingElement AsymmetricSecurityBindingElement AsymmetricSecurityBindingElement AsymmetricSecurityBindingElement Class

Definition

Represents a custom binding element that supports channel security using asymmetric encryption. This binding element signs the message using the sender's authentication token and encrypts the message using the recipient's token.

public ref class AsymmetricSecurityBindingElement sealed : System::ServiceModel::Channels::SecurityBindingElement, System::ServiceModel::Description::IPolicyExportExtension
public sealed class AsymmetricSecurityBindingElement : System.ServiceModel.Channels.SecurityBindingElement, System.ServiceModel.Description.IPolicyExportExtension
type AsymmetricSecurityBindingElement = class
    inherit SecurityBindingElement
    interface IPolicyExportExtension
Public NotInheritable Class AsymmetricSecurityBindingElement
Inherits SecurityBindingElement
Implements IPolicyExportExtension
Inheritance
AsymmetricSecurityBindingElementAsymmetricSecurityBindingElementAsymmetricSecurityBindingElementAsymmetricSecurityBindingElement
Implements

Examples

The following example shows how to use this class to create a custom binding that includes this class as a security binding element. For more information about the code in this example, see How to: Consistently Reference X.509 Certificates.

       public Binding CreateClientBinding()
       {
           AsymmetricSecurityBindingElement abe =
               (AsymmetricSecurityBindingElement)SecurityBindingElement.
               CreateMutualCertificateBindingElement(
               MessageSecurityVersion.
               WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10);

           abe.SetKeyDerivation(false);
           
           X509SecurityTokenParameters istp =
              abe.InitiatorTokenParameters as X509SecurityTokenParameters;
           if (istp != null)
           {
               istp.X509ReferenceStyle =
               X509KeyIdentifierClauseType.IssuerSerial;
           }
           X509SecurityTokenParameters rstp =
           abe.RecipientTokenParameters as X509SecurityTokenParameters;
           if (rstp != null)
           {
               rstp.X509ReferenceStyle =
               X509KeyIdentifierClauseType.IssuerSerial;
           }

           HttpTransportBindingElement transport = 
               new HttpTransportBindingElement();

           return new CustomBinding(abe, transport);
       }
Public Function CreateClientBinding() As Binding
    Dim abe As AsymmetricSecurityBindingElement = CType(SecurityBindingElement.CreateMutualCertificateBindingElement(MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10), AsymmetricSecurityBindingElement)

    abe.SetKeyDerivation(False)

    Dim istp As X509SecurityTokenParameters = TryCast(abe.InitiatorTokenParameters, X509SecurityTokenParameters)
    If istp IsNot Nothing Then
        istp.X509ReferenceStyle = X509KeyIdentifierClauseType.IssuerSerial
    End If
    Dim rstp As X509SecurityTokenParameters = TryCast(abe.RecipientTokenParameters, X509SecurityTokenParameters)
    If rstp IsNot Nothing Then
        rstp.X509ReferenceStyle = X509KeyIdentifierClauseType.IssuerSerial
    End If

    Dim transport As New HttpTransportBindingElement()

    Return New CustomBinding(abe, transport)
End Function

Remarks

A custom binding contains a collection of binding elements arranged in a specific order: the element that represents the top of the binding stack is added first, the next element down in the binding stack, is added second, and so forth.

To add this class to a binding

  1. Create a BindingElementCollection.

  2. Create custom binding elements that is above this binding element in the binding stack, such as the optional TransactionFlowBindingElement and ReliableSessionBindingElement.

  3. Add the created elements in the preceding order to the BindingElementCollection using the InsertItem(Int32, BindingElement) method.

  4. Create an instance of AsymmetricSecurityBindingElement and add it to the collection.

  5. Add any additional custom binding elements to the collection, such as TcpTransportBindingElement.

Before using this class, you should determine if a standard binding meets your security requirements.

Note

Once an instance of this object is created, you should treat the properties of its base class SecurityBindingElement as immutable. Calling set on some properties may have unpredictable effects: the binding may behave as if the property retained its old value, with a run-time failure being the only indication of an issue. Two properties known to behave this way are KeyType and MessageSecurityVersion. There may be other properties this is true of.

Constructors

AsymmetricSecurityBindingElement() AsymmetricSecurityBindingElement() AsymmetricSecurityBindingElement() AsymmetricSecurityBindingElement()

Creates an instance of this class.

AsymmetricSecurityBindingElement(SecurityTokenParameters) AsymmetricSecurityBindingElement(SecurityTokenParameters) AsymmetricSecurityBindingElement(SecurityTokenParameters) AsymmetricSecurityBindingElement(SecurityTokenParameters)

Initializes a new instance of AsymmetricSecurityBindingElement with the specified recipient token parameters.

AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters) AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters) AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters) AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters)

Initializes a new instance of AsymmetricSecurityBindingElement with the specified recipient and initiator token parameters.

Properties

AllowInsecureTransport AllowInsecureTransport AllowInsecureTransport AllowInsecureTransport

Gets or sets a value that indicates whether mixed-mode secured messages can be sent over an unsecured transport such as HTTP.

(Inherited from SecurityBindingElement)
AllowSerializedSigningTokenOnReply AllowSerializedSigningTokenOnReply AllowSerializedSigningTokenOnReply AllowSerializedSigningTokenOnReply

Gets or sets a value that indicates whether serializing a signing token on a reply message is allowed.

DefaultAlgorithmSuite DefaultAlgorithmSuite DefaultAlgorithmSuite DefaultAlgorithmSuite

Gets or sets the message encryption and key-wrap algorithms.

(Inherited from SecurityBindingElement)
EnableUnsecuredResponse EnableUnsecuredResponse EnableUnsecuredResponse EnableUnsecuredResponse

Gets or sets a value that indicates whether WCF can send and receive unsecured responses to secured requests.

(Inherited from SecurityBindingElement)
EndpointSupportingTokenParameters EndpointSupportingTokenParameters EndpointSupportingTokenParameters EndpointSupportingTokenParameters

Gets the endpoint that supports token parameters.

(Inherited from SecurityBindingElement)
IncludeTimestamp IncludeTimestamp IncludeTimestamp IncludeTimestamp

Gets or sets a value that indicates whether time stamps are included in each message.

(Inherited from SecurityBindingElement)
InitiatorTokenParameters InitiatorTokenParameters InitiatorTokenParameters InitiatorTokenParameters

Specifies the token definition for the initiator.

KeyEntropyMode KeyEntropyMode KeyEntropyMode KeyEntropyMode

Gets or sets the source of entropy used to create keys.

(Inherited from SecurityBindingElement)
LocalClientSettings LocalClientSettings LocalClientSettings LocalClientSettings

Gets the binding properties specific to local security settings used by the client.

(Inherited from SecurityBindingElement)
LocalServiceSettings LocalServiceSettings LocalServiceSettings LocalServiceSettings

Gets the binding properties specific to local security settings used by the service.

(Inherited from SecurityBindingElement)
MessageProtectionOrder MessageProtectionOrder MessageProtectionOrder MessageProtectionOrder

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

MessageSecurityVersion MessageSecurityVersion MessageSecurityVersion MessageSecurityVersion

Gets or sets the message security version.

(Inherited from SecurityBindingElement)
OperationSupportingTokenParameters OperationSupportingTokenParameters OperationSupportingTokenParameters OperationSupportingTokenParameters

Gets the collection of operation supporting token parameters.

(Inherited from SecurityBindingElement)
OptionalEndpointSupportingTokenParameters OptionalEndpointSupportingTokenParameters OptionalEndpointSupportingTokenParameters OptionalEndpointSupportingTokenParameters

Gets the optional supporting token parameters for the service endpoint.

(Inherited from SecurityBindingElement)
OptionalOperationSupportingTokenParameters OptionalOperationSupportingTokenParameters OptionalOperationSupportingTokenParameters OptionalOperationSupportingTokenParameters

Gets the collection of optional operation supporting token parameters.

(Inherited from SecurityBindingElement)
ProtectTokens ProtectTokens ProtectTokens ProtectTokens

Gets or sets whether the security binding element protects tokens.

(Inherited from SecurityBindingElement)
RecipientTokenParameters RecipientTokenParameters RecipientTokenParameters RecipientTokenParameters

Specifies the token definition for the recipient.

RequireSignatureConfirmation RequireSignatureConfirmation RequireSignatureConfirmation RequireSignatureConfirmation

Gets or sets a value that indicates whether message signatures must be confirmed.

SecurityHeaderLayout SecurityHeaderLayout SecurityHeaderLayout SecurityHeaderLayout

Gets or sets the ordering of the elements in the security header for this binding.

(Inherited from SecurityBindingElement)

Methods

BuildChannelFactory<TChannel>(BindingContext) BuildChannelFactory<TChannel>(BindingContext) BuildChannelFactory<TChannel>(BindingContext) BuildChannelFactory<TChannel>(BindingContext)

Creates a channel factory based on the SecurityBindingElement settings and the binding context passed in. The channel factory created is a SOAP message security channel factory, which internally has a reference to the channel factory that corresponds to the binding context, (which includes the transport channel factory).

(Inherited from SecurityBindingElement)
BuildChannelFactoryCore<TChannel>(BindingContext) BuildChannelFactoryCore<TChannel>(BindingContext) BuildChannelFactoryCore<TChannel>(BindingContext) BuildChannelFactoryCore<TChannel>(BindingContext)

When implemented, creates a channel factory of a specified type.

(Inherited from SecurityBindingElement)
BuildChannelListener<TChannel>(BindingContext) BuildChannelListener<TChannel>(BindingContext) BuildChannelListener<TChannel>(BindingContext) BuildChannelListener<TChannel>(BindingContext)

Creates a channel listener based on the SecurityBindingElement settings and the binding context passed in.

(Inherited from SecurityBindingElement)
BuildChannelListenerCore<TChannel>(BindingContext) BuildChannelListenerCore<TChannel>(BindingContext) BuildChannelListenerCore<TChannel>(BindingContext) BuildChannelListenerCore<TChannel>(BindingContext)

When implemented, creates a channel listener of a specified type.

(Inherited from SecurityBindingElement)
CanBuildChannelFactory<TChannel>(BindingContext) CanBuildChannelFactory<TChannel>(BindingContext) CanBuildChannelFactory<TChannel>(BindingContext) CanBuildChannelFactory<TChannel>(BindingContext)

Determines whether a channel factory of the specified type can be built.

(Inherited from SecurityBindingElement)
CanBuildChannelListener<TChannel>(BindingContext) CanBuildChannelListener<TChannel>(BindingContext) CanBuildChannelListener<TChannel>(BindingContext) CanBuildChannelListener<TChannel>(BindingContext)

Determines whether a channel listener of the specified type can be built.

(Inherited from SecurityBindingElement)
Clone() Clone() Clone() Clone()

Creates a new instance of this class initialized from the current one.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetProperty<T>(BindingContext) GetProperty<T>(BindingContext) GetProperty<T>(BindingContext) GetProperty<T>(BindingContext)

Gets a specified object from the BindingContext.

GetType() GetType() GetType() GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
SetKeyDerivation(Boolean) SetKeyDerivation(Boolean) SetKeyDerivation(Boolean) SetKeyDerivation(Boolean)

Sets a value that indicates whether derived keys are required.

ToString() ToString() ToString() ToString()

Returns a string that represents this AsymmetricSecurityBindingElement instance.

Explicit Interface Implementations

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exports a custom policy assertion about bindings, which is added to the Web Services Description Language (WSDL) information.

Applies to