IInteractiveChannelInitializer 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義方法,這些方法可讓用戶端應用程式顯示使用者介面,以便在建立通道之前收集身分識別資訊。
public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
- 衍生
備註
實作 IInteractiveChannelInitializer 介面來讓用戶端應用程式顯示使用者介面,以供應用程式的使用者在開啟通道之前用來建立或選取認證。
為了實作 IInteractiveChannelInitializer,此時要在 IInteractiveChannelInitializer.BeginDisplayInitializationUI 中執行下列步驟:
提示使用者並取得適當的 System.Net.NetworkCredential。
將自訂通道參數物件加入至在 IChannel.GetProperty 物件上以 IClientChannel 的型別參數呼叫 System.ServiceModel.Channels.ChannelParameterCollection 方法所傳回的集合。 自訂的 System.ServiceModel.ClientCredentialsSecurityTokenManager 會使用這個通道參數物件來建立通道的安全性權杖。
傳回。
為了插入 IInteractiveChannelInitializer,此時要:
覆寫 IEndpointBehavior.ApplyClientBehavior 類別上的 System.ServiceModel.Description.ClientCredentials 方法。
使用該方法來判定端點是否需要 IInteractiveChannelInitializer,如果需要,則將 IInteractiveChannelInitializer 加入至 ClientRuntime.InteractiveChannelInitializers 集合。
應用程式開發人員可以透過兩種方式來使用插入的 IInteractiveChannelInitializer。 用戶端應用程式可以在開啟通道之前呼叫 ClientBase<TChannel>.DisplayInitializationUI 或 IClientChannel.DisplayInitializationUI (或非同步版本) , (明確 方法) 或直接呼叫第一個作業 (隱含 方法) 。
如果使用隱含方式,應用程式就必須在 ClientBase<TChannel> 或 IClientChannel 擴充上呼叫第一項作業。 如果呼叫第一項作業以外的任何作業,就會擲回例外狀況。
如果使用明確方式,應用程式必須依照順序執行下列步驟:
呼叫 ClientBase<TChannel>.DisplayInitializationUI 或 IClientChannel.DisplayInitializationUI (或非同步版本)。
當初始設定式已回傳時,在 Open 物件或是 IClientChannel 屬性傳回的 IClientChannel 物件上呼叫 ClientBase<TChannel>.InnerChannel 方法。
呼叫作業。
建議您採用明確方式來處理使用者介面的產品等級應用程式控制。
使用隱含方式的應用程式會叫用使用者介面初始設定式,但若應用程式的使用者無法在繫結的傳送逾時期限之內回應,當使用者介面傳回時就會擲回例外狀況。