Freigeben über


AsymmetricSecurityBindingElement Klasse

Definition

Stellt ein benutzerdefiniertes Bindungselement dar, das die Kanalsicherheit mit asymmetrischer Verschlüsselung unterstützt. Dieses Bindungselement signiert die Nachricht mit dem Authentifizierungstoken des Absenders und verschlüsselt die Nachricht mit dem Token des Empfängers.

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
Vererbung
AsymmetricSecurityBindingElement
Implementiert

Beispiele

Das folgende Beispiel zeigt, wie Sie diese Klasse verwenden können, um eine benutzerdefinierte Bindung zu erstellen, die diese Klasse als ein Sicherheitsbindungselement enthält. Weitere Informationen zum Code in diesem Beispiel finden Sie unter Vorgehensweise: Konsistenter Verweis auf X.509-Zertifikate.

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

Hinweise

Eine benutzerdefinierte Bindung enthält eine Auflistung von Bindungselementen, die in einer bestimmten Reihenfolge angeordnet sind: Das Element, das das erste Element des Bindungsstapels darstellt, wird zuerst hinzugefügt, das darauf folgende Element wird als zweites hinzugefügt usw.

So fügen Sie diese Klasse einer Bindung hinzu

  1. Erstellen Sie eine BindingElementCollection.

  2. Erstellen Sie benutzerdefinierte Bindungselemente, die sich im Bindungsstapel über diesem Bindungselement befinden, wie zum Beispiel das optionale TransactionFlowBindingElement und ReliableSessionBindingElement.

  3. Fügen Sie die erstellten Elemente in der oben angegebenen Reihenfolge zur BindingElementCollection hinzu, indem Sie die InsertItem(Int32, BindingElement)-Methode verwenden.

  4. Erstellen Sie eine Instanz von AsymmetricSecurityBindingElement, und fügen Sie sie zur Auflistung hinzu.

  5. Fügen Sie weitere benutzerdefinierte Bindungselemente zur Auflistung hinzu, wie zum Beispiel TcpTransportBindingElement.

Vor dem Verwenden dieser Klasse sollten Sie feststellen, ob eine Standardbindung die Sicherheitsanforderungen erfüllt.

Hinweis

Nachdem eine Instanz dieses Objekts erstellt wurde, sollten die Eigenschaften ihres Basisklasse-SecurityBindingElement als unveränderlich behandelt werden. Das Aufrufen von „set“ für einige Eigenschaften kann unvorhergesehene Auswirkungen nach sich ziehen: Die Bindung verhält sich möglicherweise so, als ob die Eigenschaft den alten Wert beibehalten hätte, wobei nur ein Laufzeitfehler auf ein Problem hinweist. Zwei Eigenschaften, die für diese Verhaltensweise bekannt sind, sind KeyType und MessageSecurityVersion. Es gibt möglicherweise weitere Eigenschaften, auf die dieses zutrifft.

Konstruktoren

AsymmetricSecurityBindingElement()

Erstellt eine Instanz dieser Klasse.

AsymmetricSecurityBindingElement(SecurityTokenParameters)

Initialisiert eine neue Instanz von AsymmetricSecurityBindingElement mit den angegebenen Empfängertokenparametern.

AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters)

Initialisiert eine neue Instanz von AsymmetricSecurityBindingElement mit den angegebenen Empfänger- und Initiatortokenparametern.

Eigenschaften

AllowInsecureTransport

Ruft einen Wert ab, der angibt, ob gesicherte Meldungen im gemischten Modus über einen ungesicherten Transport z. B. HTTP gesendet werden können, oder legt ihn fest.

(Geerbt von SecurityBindingElement)
AllowSerializedSigningTokenOnReply

Ruft einen Wert ab, der angibt, ob die Serialisierung eines Signiertokens für eine Antwort zulässig ist, oder legt diesen fest.

DefaultAlgorithmSuite

Ruft die Nachrichtenverschlüsselungs- und Key Wrap-Algorithmen ab oder legt sie fest.

(Geerbt von SecurityBindingElement)
EnableUnsecuredResponse

Ruft einen Wert ab, der angibt, ob WCF senden kann und ungesicherte Antworten auf gesicherte Anforderungen empfangen, oder legt ihn fest.

(Geerbt von SecurityBindingElement)
EndpointSupportingTokenParameters

Ruft den Endpunkt ab, der Tokenparameter unterstützt.

(Geerbt von SecurityBindingElement)
IncludeTimestamp

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob jede Nachricht einen Zeitstempel enthält.

(Geerbt von SecurityBindingElement)
InitiatorTokenParameters

Gibt die Tokendefinition für den Initiator an.

KeyEntropyMode

Ruft die Entropiequelle zum Erstellen von Schlüsseln ab oder legt diese fest.

(Geerbt von SecurityBindingElement)
LocalClientSettings

Ruft die für lokale Sicherheitseinstellungen, die vom Client verwendet werden, spezifischen Bindungseigenschaften ab.

(Geerbt von SecurityBindingElement)
LocalServiceSettings

Ruft die für lokale Sicherheitseinstellungen, die vom Dienst verwendet werden, spezifischen Bindungseigenschaften ab.

(Geerbt von SecurityBindingElement)
MessageProtectionOrder

Ruft die Reihenfolge der Nachrichtenverschlüsselung und der Signierung für diese Bindung ab, oder legt diese fest.

MessageSecurityVersion

Ruft die Nachrichtensicherheitsversion ab oder legt sie fest.

(Geerbt von SecurityBindingElement)
OperationSupportingTokenParameters

Ruft die Auflistung von Vorgängen ab, die Tokenparameter unterstützen.

(Geerbt von SecurityBindingElement)
OptionalEndpointSupportingTokenParameters

Ruft die optionalen unterstützenden Tokenparameter für den Dienstendpunkt ab.

(Geerbt von SecurityBindingElement)
OptionalOperationSupportingTokenParameters

Ruft die Auflistung von optionalen Vorgängen ab, die Tokenparameter unterstützen.

(Geerbt von SecurityBindingElement)
ProtectTokens

Ruft ab oder legt fest, ob das Sicherheitsbindungselement Token schützt.

(Geerbt von SecurityBindingElement)
RecipientTokenParameters

Gibt die Tokendefinition für den Empfänger an.

RequireSignatureConfirmation

Ruft einen Wert ab, der angibt, ob Nachrichtensignaturen bestätigt werden müssen, oder legt diesen fest.

SecurityHeaderLayout

Ruft die Reihenfolge der Elemente im Sicherheitsheader für diese Bindung ab oder legt diese fest.

(Geerbt von SecurityBindingElement)

Methoden

BuildChannelFactory<TChannel>(BindingContext)

Erstellt eine Kanalfactory anhand der SecurityBindingElement-Einstellungen und dem übergebenen Bindungskontext. Die erstellte Kanalfactory ist eine SOAP-Nachrichtensicherheits-Kanalfactory, die über einen internen Verweis auf die Kanalfactory verfügt, die dem Bindungskontext entspricht (der die Transportkanalfactory umfasst).

(Geerbt von SecurityBindingElement)
BuildChannelFactoryCore<TChannel>(BindingContext)

Erstellt nach Implementierung eine Kanalfactory eines angegebenen Typs.

(Geerbt von SecurityBindingElement)
BuildChannelListener<TChannel>(BindingContext)

Erstellt anhand der SecurityBindingElement-Einstellungen und dem übergebenen Bindungskontext einen Kanallistener.

(Geerbt von SecurityBindingElement)
BuildChannelListenerCore<TChannel>(BindingContext)

Erstellt bei Implementierung einen Kanallistener eines angegebenen Typs.

(Geerbt von SecurityBindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

Bestimmt, ob eine Kanalfactory des angegebenen Typs erstellt werden kann.

(Geerbt von SecurityBindingElement)
CanBuildChannelListener<TChannel>(BindingContext)

Bestimmt, ob ein Kanallistener des angegebenen Typs erstellt werden kann.

(Geerbt von SecurityBindingElement)
Clone()

Erstellt eine neue Instanz der Klasse, die aus der aktuellen initialisiert wurde.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetProperty<T>(BindingContext)

Ruft ein angegebenes Objekt aus dem BindingContext ab.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SetKeyDerivation(Boolean)

Legt einen Wert fest, der angibt, ob abgeleitete Schlüssel erforderlich sind.

ToString()

Gibt eine Zeichenfolge zurück, die diese AsymmetricSecurityBindingElement-Instanz darstellt.

Explizite Schnittstellenimplementierungen

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exportiert eine benutzerdefinierte Bindungsrichtlinienassertion, die in die Web Services Description Language (WSDL)-Informationen eingefügt wird.

Gilt für: