Sdílet prostřednictvím


IInteractiveChannelInitializer Rozhraní

Definice

Definuje metody, které klientské aplikaci umožňují zobrazit uživatelské rozhraní ke shromažďování informací o identitě před vytvořením kanálu.

public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
Odvozené

Poznámky

IInteractiveChannelInitializer Implementujte rozhraní, které umožňuje klientské aplikaci zobrazit uživatelské rozhraní, které uživateli aplikace umožňuje vytvořit nebo vybrat přihlašovací údaje před otevřením kanálu.

Chcete-li provést implementaci IInteractiveChannelInitializer, proveďte následující kroky v IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Vyzvat uživatele a získat odpovídající System.Net.NetworkCredential.

  2. Přidejte objekt parametru vlastního kanálu do kolekce vrácené IChannel.GetProperty metodou objektu IClientChannel s typem parametru System.ServiceModel.Channels.ChannelParameterCollection. Tento objekt parametru kanálu používá vlastní System.ServiceModel.ClientCredentialsSecurityTokenManager objekt k vytvoření tokenů zabezpečení pro kanál.

  3. Vrátit.

IInteractiveChannelInitializerVložení:

  1. IEndpointBehavior.ApplyClientBehavior Přepište metodu ve System.ServiceModel.Description.ClientCredentials třídě.

  2. V této metodě určete, jestli koncový bod vyžaduje, IInteractiveChannelInitializer a pokud ano, přidejte do IInteractiveChannelInitializerClientRuntime.InteractiveChannelInitializers kolekce.

Existují dva způsoby, jak mohou vývojáři aplikací použít vložený IInteractiveChannelInitializer. Klientská aplikace může před otevřením kanálu (explicitním přístupem) volat buď ClientBase<TChannel>.DisplayInitializationUI nebo IClientChannel.DisplayInitializationUI (nebo asynchronní verzi), nebo jednoduše zavolat první operaci (implicitní přístup).

Pokud používáte implicitní přístup, musí aplikace volat první operaci v rámci ClientBase<TChannel> rozšíření nebo IClientChannel rozšíření. Pokud se volá jiná operace než první, vyvolá se výjimka.

Pokud používáte explicitní přístup, musí aplikace provést následující kroky v pořadí:

  1. Volejte buď ClientBase<TChannel>.DisplayInitializationUI nebo IClientChannel.DisplayInitializationUI (nebo asynchronní verzi).

  2. Když se inicializátory vrátí, zavolejte metodu Open na objektu IClientChannel nebo na objektu IClientChannel vráceném z vlastnosti ClientBase<TChannel>.InnerChannel.

  3. Operace volání

Doporučuje se, aby aplikace v produkční kvalitě kontrolují proces uživatelského rozhraní přijetím explicitního přístupu.

Aplikace, které používají implicitní přístup, vyvolávají inicializátory uživatelského rozhraní, ale pokud uživatel aplikace nereaguje do vypršení časového limitu odeslání vazby, vyvolá se výjimka, když se uživatelské rozhraní vrátí.

Metody

Name Description
BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Asynchronní volání, které začne používat uživatelské rozhraní k získání informací o přihlašovacích údaji.

EndDisplayInitializationUI(IAsyncResult)

Volá se BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) po dokončení.

Platí pro