IInteractiveChannelInitializer Интерфейс

Определение

Определяет методы, позволяющие приложению клиента отображать пользовательский интерфейс, чтобы собирать данные идентификации до создания канала.Defines the methods that enable a client application to display a user interface to collect identity information prior to creating the channel.

public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
Производный

Комментарии

Реализуйте интерфейс IInteractiveChannelInitializer, чтобы разрешить приложению клиента отображать пользовательский интерфейс, что позволяет пользователю приложения создавать или выбирать учетные данные до открытия канала.Implement the IInteractiveChannelInitializer interface to enable a client application to display a user interface that enables the user of the application to create or select the credentials prior to opening a channel.

Чтобы применить экземпляр IInteractiveChannelInitializer, выполните следующие шаги в IInteractiveChannelInitializer.BeginDisplayInitializationUI:To implement IInteractiveChannelInitializer, perform the following steps in IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Запросите пользователя и получите соответствующие System.Net.NetworkCredential.Prompt the user and obtain an appropriate System.Net.NetworkCredential.

  2. Добавьте настраиваемый объект параметра канала в коллекцию, возвращаемую методом IChannel.GetProperty в объекте IClientChannel с параметром типа System.ServiceModel.Channels.ChannelParameterCollection.Add a custom channel parameter object to the collection returned by the IChannel.GetProperty method on the IClientChannel object with a type parameter of System.ServiceModel.Channels.ChannelParameterCollection. Этот объект параметра канала используется настраиваемым средством System.ServiceModel.ClientCredentialsSecurityTokenManager для установки маркеров безопасности для канала.This channel parameter object is used by the custom System.ServiceModel.ClientCredentialsSecurityTokenManager to establish the security tokens for the channel.

  3. Возврат.Return.

Для вставки IInteractiveChannelInitializer:To insert IInteractiveChannelInitializer:

  1. Переопределите метод IEndpointBehavior.ApplyClientBehavior в классе System.ServiceModel.Description.ClientCredentials.Override the IEndpointBehavior.ApplyClientBehavior method on the System.ServiceModel.Description.ClientCredentials class.

  2. В этом методе определите, требует ли конечная точка объект IInteractiveChannelInitializer, и если это так, то добавьте объект IInteractiveChannelInitializer в коллекцию ClientRuntime.InteractiveChannelInitializers.In that method, determine whether the endpoint requires an IInteractiveChannelInitializer and if so, add the IInteractiveChannelInitializer to the ClientRuntime.InteractiveChannelInitializers collection.

Существует два пути использования вставленного объекта IInteractiveChannelInitializer разработчиками приложений.There are two ways application developers can make use of an inserted IInteractiveChannelInitializer. Клиентское приложение может вызвать ClientBase<TChannel>.DisplayInitializationUI или IClientChannel.DisplayInitializationUI (или асинхронную версию) до открытия канала ( явный подход) или просто вызвать первую операцию ( неявный подход).The client application can call either ClientBase<TChannel>.DisplayInitializationUI or IClientChannel.DisplayInitializationUI (or an asynchronous version) prior to opening the channel (the explicit approach) or simply call the first operation (the implicit approach).

Если использовать неявный подход, то приложение должно вызвать первую операцию в расширении ClientBase<TChannel> или IClientChannel.If using the implicit approach, the application must call the first operation on an ClientBase<TChannel> or IClientChannel extension. Если приложение вызовет что-либо другое вместо первой операции, будет создано исключение.If it calls anything other than the first operation, an exception is thrown.

Если использовать явный подход, то приложение должно выполнить следующие шаги по порядку:If using the explicit approach, the application must perform the following steps in order:

  1. Вызывать либо ClientBase<TChannel>.DisplayInitializationUI, либо IClientChannel.DisplayInitializationUI (или асинхронную версию).Call either ClientBase<TChannel>.DisplayInitializationUI or IClientChannel.DisplayInitializationUI (or an asynchronous version).

  2. После возвращения инициализаторов вызвать либо метод Open в объекте IClientChannel, либо в объекте IClientChannel, возвращенном из свойства ClientBase<TChannel>.InnerChannel.When the initializers have returned, call either the Open method on the IClientChannel object or on the IClientChannel object returned from the ClientBase<TChannel>.InnerChannel property.

  3. Вызовите операции.Call operations.

Рекомендуется, чтобы приложения качества работы управляли процессом взаимодействия пользователя с интерфейсом путем адаптации явного подхода.It is recommended that production-quality applications control of the user-interface process by adopting the explicit approach.

Приложения, использующие неявный подход, вызывают инициализаторы интерфейса пользователя, но если пользователь приложения не сможет ответить в отведенный период времени привязки для отправки, то при возвращении пользовательского интерфейса создается исключение.Applications that use the implicit approach invoke the user-interface initializers, but if the user of the application fails to respond within the send timeout period of the binding, an exception is thrown when the user interface returns.

Методы

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Асинхронный вызов для начала использования пользовательского интерфейса для получения учетных данных.An asynchronous call to begin using a user interface to obtain credential information.

EndDisplayInitializationUI(IAsyncResult)

Вызывается при завершении свойства BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object).Called when the BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) has finished.

Применяется к