AsymmetricSecurityBindingElement クラス

定義

非対称暗号化を使用するチャネル セキュリティをサポートするカスタム バインド要素を表します。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
継承
AsymmetricSecurityBindingElement
実装

このクラスを使用して、このクラスをセキュリティ バインド要素として含むカスタム バインドを作成する方法を次の例に示します。The following example shows how to use this class to create a custom binding that includes this class as a security binding element. この例のコードの詳細については、 「方法:X.509 証明書を一貫して参照します。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

注釈

カスタム バインドには、特定の順序で配置されたバインド要素のコレクションが含まれます。バインド スタックの一番上を表す要素が最初に追加され、バインド スタックの 1 つ下の要素が 2 番目に追加される、という順序で配置されます。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. BindingElementCollection を作成します。Create a BindingElementCollection.

  2. オプションの TransactionFlowBindingElementReliableSessionBindingElement など、バインド スタックでこのバインド要素の上になるカスタム バインド要素を作成します。Create custom binding elements that is above this binding element in the binding stack, such as the optional TransactionFlowBindingElement and ReliableSessionBindingElement.

  3. BindingElementCollection メソッドを使用して、作成した要素を上記の順で InsertItem(Int32, BindingElement) に追加します。Add the created elements in the preceding order to the BindingElementCollection using the InsertItem(Int32, BindingElement) method.

  4. AsymmetricSecurityBindingElement インスタンスを作成して、コレクションに追加します。Create an instance of AsymmetricSecurityBindingElement and add it to the collection.

  5. TcpTransportBindingElement など、追加のカスタム バインド要素があればコレクションに追加します。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.

注意

このオブジェクトのインスタンスが一度作成されると、基本クラス SecurityBindingElement のプロパティを変更不可として扱う必要があります。Once an instance of this object is created, you should treat the properties of its base class SecurityBindingElement as immutable. 一部のプロパティで set を呼び出すと、予期しない結果になることがあります。プロパティに古い値が保持されているかのようにバインドが動作し、この問題が発生したことを示すのが、ランタイム エラーのみとなる場合があります。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. このように動作することがわかっているプロパティは KeyTypeMessageSecurityVersion の 2 つです。Two properties known to behave this way are KeyType and MessageSecurityVersion. 他にも同じように動作するプロパティが存在する可能性があります。There may be other properties this is true of.

コンストラクター

AsymmetricSecurityBindingElement()

このクラスのインスタンスを作成します。Creates an instance of this class.

AsymmetricSecurityBindingElement(SecurityTokenParameters)

指定した受信者トークン パラメーターを使用して、AsymmetricSecurityBindingElement クラスの新しいインスタンスを初期化します。Initializes a new instance of AsymmetricSecurityBindingElement with the specified recipient token parameters.

AsymmetricSecurityBindingElement(SecurityTokenParameters, SecurityTokenParameters)

指定した受信者とイニシエーターのトークン パラメーターを使用して、AsymmetricSecurityBindingElement クラスの新しいインスタンスを初期化します。Initializes a new instance of AsymmetricSecurityBindingElement with the specified recipient and initiator token parameters.

プロパティ

AllowInsecureTransport

セキュリティで保護された混合モードのメッセージを、HTTP などのセキュリティで保護されていないトランスポートを介して送信できるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether mixed-mode secured messages can be sent over an unsecured transport such as HTTP.

(継承元 SecurityBindingElement)
AllowSerializedSigningTokenOnReply

応答メッセージの署名トークンのシリアル化が許されるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether serializing a signing token on a reply message is allowed.

DefaultAlgorithmSuite

メッセージの暗号化とキー ラップ アルゴリズムを取得または設定します。Gets or sets the message encryption and key-wrap algorithms.

(継承元 SecurityBindingElement)
EnableUnsecuredResponse

WCF がセキュリティで保護された要求に対するセキュリティで保護されていない応答を送受信できるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether WCF can send and receive unsecured responses to secured requests.

(継承元 SecurityBindingElement)
EndpointSupportingTokenParameters

トークン パラメーターをサポートするエンドポイントを取得します。Gets the endpoint that supports token parameters.

(継承元 SecurityBindingElement)
IncludeTimestamp

各メッセージにタイム スタンプが含まれるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether time stamps are included in each message.

(継承元 SecurityBindingElement)
InitiatorTokenParameters

イニシエーターに対するトークン定義を指定します。Specifies the token definition for the initiator.

KeyEntropyMode

キーの作成に使用されるエントロピのソースを取得または設定します。Gets or sets the source of entropy used to create keys.

(継承元 SecurityBindingElement)
LocalClientSettings

クライアントが使用するローカル セキュリティ設定に固有のバインド プロパティを取得します。Gets the binding properties specific to local security settings used by the client.

(継承元 SecurityBindingElement)
LocalServiceSettings

サービスが使用するローカル セキュリティ設定に固有のバインド プロパティを取得します。Gets the binding properties specific to local security settings used by the service.

(継承元 SecurityBindingElement)
MessageProtectionOrder

このバインドのメッセージの暗号化と署名の命令を取得または設定します。Gets or sets the order of message encryption and signing for this binding.

MessageSecurityVersion

メッセージ セキュリティのバージョンを取得または設定します。Gets or sets the message security version.

(継承元 SecurityBindingElement)
OperationSupportingTokenParameters

トークン パラメーターをサポートする操作のコレクションを取得します。Gets the collection of operation supporting token parameters.

(継承元 SecurityBindingElement)
OptionalEndpointSupportingTokenParameters

サービス エンドポイントに対するオプションのサポート トークン パラメーターを取得します。Gets the optional supporting token parameters for the service endpoint.

(継承元 SecurityBindingElement)
OptionalOperationSupportingTokenParameters

トークン パラメーターをサポートするオプション操作のコレクションを取得します。Gets the collection of optional operation supporting token parameters.

(継承元 SecurityBindingElement)
ProtectTokens

セキュリティ バインディング要素がトークンを保護するかどうかを取得または設定します。Gets or sets whether the security binding element protects tokens.

(継承元 SecurityBindingElement)
RecipientTokenParameters

受信先に対するトークン定義を指定します。Specifies the token definition for the recipient.

RequireSignatureConfirmation

メッセージの署名を確認する必要があるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether message signatures must be confirmed.

SecurityHeaderLayout

このバインドのセキュリティ ヘッダー内の要素の順序を取得または設定します。Gets or sets the ordering of the elements in the security header for this binding.

(継承元 SecurityBindingElement)

メソッド

BuildChannelFactory<TChannel>(BindingContext)

渡される SecurityBindingElement の設定とバインド コンテキストに基づいて、チャネル ファクトリを作成します。Creates a channel factory based on the SecurityBindingElement settings and the binding context passed in. 作成されるチャネル ファクトリは SOAP メッセージ セキュリティ チャネル ファクトリで、内部的にバインディング コンテキスト (トランスポート チャネル ファクトリを格納する) に対応するチャネル ファクトリへの参照を保持します。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).

(継承元 SecurityBindingElement)
BuildChannelFactoryCore<TChannel>(BindingContext)

実装されると、指定した種類のチャネル ファクトリを作成します。When implemented, creates a channel factory of a specified type.

(継承元 SecurityBindingElement)
BuildChannelListener<TChannel>(BindingContext)

指定する SecurityBindingElement の設定とバインド コンテキストに基づいて、チャネル リスナーを作成します。Creates a channel listener based on the SecurityBindingElement settings and the binding context passed in.

(継承元 SecurityBindingElement)
BuildChannelListenerCore<TChannel>(BindingContext)

実装されると、指定した種類のチャネル リスナーを作成します。When implemented, creates a channel listener of a specified type.

(継承元 SecurityBindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

指定した種類のチャネル ファクトリを作成できるかどうかを判断します。Determines whether a channel factory of the specified type can be built.

(継承元 SecurityBindingElement)
CanBuildChannelListener<TChannel>(BindingContext)

指定した種類のチャネル リスナーを作成できるかどうかを判断します。Determines whether a channel listener of the specified type can be built.

(継承元 SecurityBindingElement)
Clone()

このクラスの新しいインスタンスを作成し、現在のインスタンスで初期化します。Creates a new instance of this class initialized from the current one.

Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetProperty<T>(BindingContext)

BindingContext から指定したオブジェクトを取得します。Gets a specified object from the BindingContext.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
SetKeyDerivation(Boolean)

派生キーが必要かどうかを示す値を設定します。Sets a value that indicates whether derived keys are required.

ToString()

この AsymmetricSecurityBindingElement インスタンスを表す文字列を返します。Returns a string that represents this AsymmetricSecurityBindingElement instance.

明示的なインターフェイスの実装

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

バインディングに関するカスタム ポリシー アサーションをエクスポートします。エクスポートしたアサーションは、Web サービス記述言語 (WSDL) の情報に追加されます。Exports a custom policy assertion about bindings, which is added to the Web Services Description Language (WSDL) information.

適用対象