次の方法で共有


IInteractiveChannelInitializer インターフェイス

定義

クライアント アプリケーションがチャネルを作成する前に ID 情報を収集するためのユーザー インターフェイスを表示できるようにするメソッドを定義します。

public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
派生

注釈

IInteractiveChannelInitializer インターフェイスを実装し、チャネルを開く前にアプリケーションのユーザーが資格情報を作成または選択できるユーザー インターフェイスを、クライアント アプリケーションが表示できるようにします。

IInteractiveChannelInitializer を実装するには、IInteractiveChannelInitializer.BeginDisplayInitializationUI 内で次の手順を実行します。

  1. ユーザーに入力を求めて、適切な System.Net.NetworkCredential を取得します。

  2. IClientChannel オブジェクトに対して、System.ServiceModel.Channels.ChannelParameterCollection の型パラメーターを引数として IChannel.GetProperty メソッドを呼び出したときに返されるコレクションに、カスタムのチャネル パラメーター オブジェクトを追加します。 このチャネル パラメーター オブジェクトをカスタムの System.ServiceModel.ClientCredentialsSecurityTokenManager で使用して、チャネル用のセキュリティ トークンを確立します。

  3. 返します。

IInteractiveChannelInitializer を挿入するには :

  1. IEndpointBehavior.ApplyClientBehavior クラスの System.ServiceModel.Description.ClientCredentials メソッドをオーバーライドします。

  2. そのメソッドで、エンドポイントに IInteractiveChannelInitializer が必要かどうかを判定し、必要な場合は、IInteractiveChannelInitializerClientRuntime.InteractiveChannelInitializers コレクションに追加します。

アプリケーション開発者は、挿入された IInteractiveChannelInitializer を 2 つの方法で利用できます。 クライアント アプリケーションは、チャネルを開く前に または IClientChannel.DisplayInitializationUI (または非同期バージョン) を呼び出ClientBase<TChannel>.DisplayInitializationUIすか (明示的なアプローチ)、または単に最初の操作 (暗黙的なアプローチ) を呼び出すことができます。

暗黙的方法を使用する場合、アプリケーションは最初の操作を ClientBase<TChannel> または IClientChannel 拡張に対して呼び出す必要があります。 アプリケーションが最初の操作以外の何かを呼び出した場合、例外がスローされます。

明示的方法を使用する場合、アプリケーションで次の手順を順番に実行する必要があります。

  1. ClientBase<TChannel>.DisplayInitializationUI または IClientChannel.DisplayInitializationUI (または非同期バージョン) を呼び出します。

  2. 初期化子が返された場合は、Open オブジェクトまたは IClientChannel プロパティで返された IClientChannel オブジェクトの ClientBase<TChannel>.InnerChannel メソッドを呼び出します。

  3. 操作を呼び出します。

製品品質のアプリケーションで、明示的方法を採用し、ユーザー インターフェイス処理を制御することをお勧めします。

暗黙的な方法を使用するアプリケーションでは、ユーザー インターフェイス初期化子が呼び出されますが、このアプリケーションのユーザーがバインディングの送信タイムアウト期間内に応答できない場合、ユーザー インターフェイスが復帰すると例外がスローされます。

メソッド

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

資格情報を取得するユーザー インターフェイスの使用を開始するための非同期呼び出し。

EndDisplayInitializationUI(IAsyncResult)

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) が終了すると、呼び出されます。

適用対象