Udostępnij za pośrednictwem


IInteractiveChannelInitializer Interfejs

Definicja

Definiuje metody umożliwiające aplikacji klienckiej wyświetlanie interfejsu użytkownika w celu zbierania informacji o tożsamości przed utworzeniem kanału.

public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
Pochodne

Uwagi

Zaimplementuj IInteractiveChannelInitializer interfejs, aby umożliwić aplikacji klienckiej wyświetlanie interfejsu użytkownika, który umożliwia użytkownikowi aplikacji tworzenie lub wybieranie poświadczeń przed otwarciem kanału.

Aby zaimplementować IInteractiveChannelInitializermetodę , wykonaj następujące kroki w IInteractiveChannelInitializer.BeginDisplayInitializationUItemacie :

  1. Monituj użytkownika i uzyskaj odpowiedni System.Net.NetworkCredentialelement .

  2. Dodaj obiekt parametru kanału niestandardowego do kolekcji zwróconej przez IChannel.GetProperty metodę w IClientChannel obiekcie z parametrem System.ServiceModel.Channels.ChannelParameterCollectiontypu . Ten obiekt parametru kanału jest używany przez niestandardowy System.ServiceModel.ClientCredentialsSecurityTokenManager do ustanawiania tokenów zabezpieczających dla kanału.

  3. Zwraca.

Aby wstawić polecenie IInteractiveChannelInitializer:

  1. Zastąpij metodę IEndpointBehavior.ApplyClientBehavior w System.ServiceModel.Description.ClientCredentials klasie .

  2. W tej metodzie określ, czy punkt końcowy wymaga elementu IInteractiveChannelInitializer , a jeśli tak, dodaj element IInteractiveChannelInitializer do kolekcji ClientRuntime.InteractiveChannelInitializers .

Istnieją dwa sposoby, w jaki deweloperzy aplikacji mogą korzystać z wstawionego IInteractiveChannelInitializerelementu . Aplikacja kliencka może wywołać ClientBase<TChannel>.DisplayInitializationUI wersję asynchroniczną lub IClientChannel.DisplayInitializationUI (lub asynchroniczną) przed otwarciem kanału ( podejście jawne ) lub po prostu wywołać pierwszą operację ( podejście niejawne ).

W przypadku korzystania z niejawnego podejścia aplikacja musi wywołać pierwszą operację ClientBase<TChannel> na rozszerzeniu lub IClientChannel . Jeśli wywołuje coś innego niż pierwsza operacja, zgłaszany jest wyjątek.

Jeśli używasz jawnego podejścia, aplikacja musi wykonać następujące kroki w następującej kolejności:

  1. ClientBase<TChannel>.DisplayInitializationUI Wywołaj wersję asynchroniczną lub IClientChannel.DisplayInitializationUI lub (lub asynchroniczną).

  2. Po powrocie inicjatorów wywołaj metodę Open obiektu IClientChannel lub IClientChannel obiekt zwrócony z ClientBase<TChannel>.InnerChannel właściwości .

  3. Operacje wywoływania.

Zaleca się, aby aplikacje jakości produkcyjnej kontrolować proces interfejsu użytkownika, stosując jawne podejście.

Aplikacje korzystające z niejawnego podejścia wywołują inicjatory interfejsu użytkownika, ale jeśli użytkownik aplikacji nie odpowie w okresie limitu czasu wysyłania powiązania, zgłaszany jest wyjątek, gdy interfejs użytkownika zwraca.

Metody

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Wywołanie asynchroniczne, aby rozpocząć korzystanie z interfejsu użytkownika w celu uzyskania informacji o poświadczeniach.

EndDisplayInitializationUI(IAsyncResult)

Wywoływane po zakończeniu BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) .

Dotyczy