共用方式為


IInteractiveChannelInitializer 介面

定義

定義方法,這些方法可讓用戶端應用程式顯示使用者介面,以便在建立通道之前收集身分識別資訊。

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

備註

實作 IInteractiveChannelInitializer 介面來讓用戶端應用程式顯示使用者介面,以供應用程式的使用者在開啟通道之前用來建立或選取認證。

為了實作 IInteractiveChannelInitializer,此時要在 IInteractiveChannelInitializer.BeginDisplayInitializationUI 中執行下列步驟:

  1. 提示使用者並取得適當的 System.Net.NetworkCredential

  2. 將自訂通道參數物件加入至在 IChannel.GetProperty 物件上以 IClientChannel 的型別參數呼叫 System.ServiceModel.Channels.ChannelParameterCollection 方法所傳回的集合。 自訂的 System.ServiceModel.ClientCredentialsSecurityTokenManager 會使用這個通道參數物件來建立通道的安全性權杖。

  3. 傳回。

為了插入 IInteractiveChannelInitializer,此時要:

  1. 覆寫 IEndpointBehavior.ApplyClientBehavior 類別上的 System.ServiceModel.Description.ClientCredentials 方法。

  2. 使用該方法來判定端點是否需要 IInteractiveChannelInitializer,如果需要,則將 IInteractiveChannelInitializer 加入至 ClientRuntime.InteractiveChannelInitializers 集合。

應用程式開發人員可以透過兩種方式來使用插入的 IInteractiveChannelInitializer。 用戶端應用程式可以在開啟通道之前呼叫 ClientBase<TChannel>.DisplayInitializationUIIClientChannel.DisplayInitializationUI (或非同步版本) , (明確 方法) 或直接呼叫第一個作業 (隱含 方法) 。

如果使用隱含方式,應用程式就必須在 ClientBase<TChannel>IClientChannel 擴充上呼叫第一項作業。 如果呼叫第一項作業以外的任何作業,就會擲回例外狀況。

如果使用明確方式,應用程式必須依照順序執行下列步驟:

  1. 呼叫 ClientBase<TChannel>.DisplayInitializationUIIClientChannel.DisplayInitializationUI (或非同步版本)。

  2. 當初始設定式已回傳時,在 Open 物件或是 IClientChannel 屬性傳回的 IClientChannel 物件上呼叫 ClientBase<TChannel>.InnerChannel 方法。

  3. 呼叫作業。

建議您採用明確方式來處理使用者介面的產品等級應用程式控制。

使用隱含方式的應用程式會叫用使用者介面初始設定式,但若應用程式的使用者無法在繫結的傳送逾時期限之內回應,當使用者介面傳回時就會擲回例外狀況。

方法

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

要開始使用使用者介面來取得認證資訊的非同步呼叫。

EndDisplayInitializationUI(IAsyncResult)

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) 完成後呼叫。

適用於