AsymmetricSecurityBindingElement Clase

Definición

Representa un elemento de enlace personalizado que admite seguridad del canal mediante el cifrado asimétrico. Este elemento de enlace firma el mensaje mediante el token de autenticación del remitente y cifra el mensaje mediante el token del destinatario.

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
Herencia
AsymmetricSecurityBindingElement
Implementaciones

Ejemplos

El ejemplo siguiente muestra cómo utilizar esta clase para crear un enlace personalizado que incluya esta clase como un elemento de enlace de seguridad. Para obtener más información sobre el código de este ejemplo, vea Cómo: Hacer referencia coherente a certificados X.509.

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

Comentarios

Un enlace personalizado contiene una colección de elementos de enlace organizada en un orden específico: primero se agrega el elemento que representa la parte superior de la pila de enlace, el elemento siguiente en la pila de enlace se agrega en segundo lugar, etc.

Para agregar esta clase a un enlace

  1. Creará un control BindingElementCollection.

  2. Cree elementos de enlace personalizados que sean anteriores a este elemento de enlace en la pila de enlace, como el TransactionFlowBindingElement opcional y ReliableSessionBindingElement.

  3. Agregue los elementos creados en el orden mencionado previamente a BindingElementCollection utilizando el método InsertItem(Int32, BindingElement).

  4. Cree una instancia de AsymmetricSecurityBindingElement y agréguela a la colección.

  5. Agregue cualquier elemento de enlace personalizado adicional a la colección, como la clase TcpTransportBindingElement.

Antes de utilizar esta clase, debería determinar si un enlace estándar satisface sus requisitos de seguridad.

Nota

Una vez creada una instancia de este objeto, debería tratar las propiedades de su clase base SecurityBindingElement como inmutables. Llamar a set en algunas propiedades puede tener efectos imprevisibles: el enlace puede comportarse como si la propiedad hubiese retenido su valor anterior, con un error en tiempo de ejecución como única indicación de un problema. Dos propiedades conocidas por comportarse de esta manera son KeyType y MessageSecurityVersion. Puede haber otras propiedades para las que esto sea verdad.

Constructores

AsymmetricSecurityBindingElement()

Crea una instancia de esta clase.

AsymmetricSecurityBindingElement(SecurityTokenParameters)

Inicializa una nueva instancia de la clase AsymmetricSecurityBindingElement con los parámetros especificados del token del destinatario.

AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters)

Inicializa una nueva instancia de la clase AsymmetricSecurityBindingElement con los parámetros especificados del token del destinatario y del iniciador.

Propiedades

AllowInsecureTransport

Obtiene o establece un valor que indica si los mensajes seguros en modo mixto se pueden enviar a través de un transporte no seguro como HTTP.

(Heredado de SecurityBindingElement)
AllowSerializedSigningTokenOnReply

Obtiene o establece un valor que indica si está permitido serializar un token de firma en un mensaje de respuesta.

DefaultAlgorithmSuite

Obtiene o establece el cifrado de mensajes y los algoritmos de encapsulado de claves.

(Heredado de SecurityBindingElement)
EnableUnsecuredResponse

Obtiene o establece un valor que indica si WCF puede enviar y recibir respuestas no seguras a solicitudes seguras.

(Heredado de SecurityBindingElement)
EndpointSupportingTokenParameters

Obtiene el extremo que admite los parámetros de token.

(Heredado de SecurityBindingElement)
IncludeTimestamp

Obtiene o establece un valor que indica si las marcas de tiempo están incluidas en cada mensaje.

(Heredado de SecurityBindingElement)
InitiatorTokenParameters

Especifica la definición del token para el iniciador.

KeyEntropyMode

Obtiene o establece el origen de entropía usado para crear claves.

(Heredado de SecurityBindingElement)
LocalClientSettings

Obtiene las propiedades de enlace específicas de la configuración de seguridad local utilizada por el cliente.

(Heredado de SecurityBindingElement)
LocalServiceSettings

Obtiene las propiedades de enlace específicas de la configuración de seguridad local utilizada por el servicio.

(Heredado de SecurityBindingElement)
MessageProtectionOrder

Obtiene o establece el orden de cifrado de mensajes y firma para este enlace.

MessageSecurityVersion

Obtiene o establece la versión de seguridad de mensaje.

(Heredado de SecurityBindingElement)
OperationSupportingTokenParameters

Obtiene la colección de parámetros de tokens auxiliares de operación.

(Heredado de SecurityBindingElement)
OptionalEndpointSupportingTokenParameters

Obtiene los parámetros de tokens auxiliares opcionales para el punto de conexión de servicio.

(Heredado de SecurityBindingElement)
OptionalOperationSupportingTokenParameters

Obtiene la colección de parámetros de tokens auxiliares de operación opcionales.

(Heredado de SecurityBindingElement)
ProtectTokens

Obtiene o establece si el elemento de enlace de seguridad protege los tokens.

(Heredado de SecurityBindingElement)
RecipientTokenParameters

Especifica la definición del token para el destinatario.

RequireSignatureConfirmation

Obtiene o establece un valor que indica si se deben confirmar las firmas del mensaje.

SecurityHeaderLayout

Obtiene o establece el orden de los elementos en el encabezado de seguridad para este enlace.

(Heredado de SecurityBindingElement)

Métodos

BuildChannelFactory<TChannel>(BindingContext)

Crea un generador de canales basándose en la configuración de la clase SecurityBindingElement y en el contexto del enlace que se pasa. El generador de canales creado es un generador de canales de seguridad de mensaje SOAP, que internamente tiene una referencia al generador de canales que corresponde al contexto de enlace (que incluye el generador de canales de transporte).

(Heredado de SecurityBindingElement)
BuildChannelFactoryCore<TChannel>(BindingContext)

Cuando se implementa, crea un generador de canales de un tipo especificado.

(Heredado de SecurityBindingElement)
BuildChannelListener<TChannel>(BindingContext)

Crea una escucha del canal basada en los valores SecurityBindingElement y el contexto de enlace pasado.

(Heredado de SecurityBindingElement)
BuildChannelListenerCore<TChannel>(BindingContext)

Cuando se implementa, crea una escucha de canales de un tipo especificado.

(Heredado de SecurityBindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

Determina si se puede crear un generador de canales del tipo especificado.

(Heredado de SecurityBindingElement)
CanBuildChannelListener<TChannel>(BindingContext)

Determina si se puede crear una escucha de canales del tipo especificado.

(Heredado de SecurityBindingElement)
Clone()

Crea una nueva instancia de esta clase inicializada a partir de la instancia actual.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetProperty<T>(BindingContext)

Obtiene un objeto especificado a partir de BindingContext.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
SetKeyDerivation(Boolean)

Establece un valor que indica si se requieren claves derivadas.

ToString()

Devuelve una cadena que representa esta instancia AsymmetricSecurityBindingElement.

Implementaciones de interfaz explícitas

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exporta una aserción de directiva personalizada sobre los enlaces, que se agrega a la información del lenguaje de descripción de servicios Web (WSDL).

Se aplica a