Compartilhar via


IInteractiveChannelInitializer Interface

Definição

Define os métodos que permitem que um aplicativo cliente exiba uma interface do usuário para coletar informações de identidade antes de criar o canal.

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

Comentários

Implemente a IInteractiveChannelInitializer interface para permitir que um aplicativo cliente exiba uma interface do usuário que permite que o usuário do aplicativo crie ou selecione as credenciais antes de abrir um canal.

Para implementar IInteractiveChannelInitializer, execute as seguintes etapas em IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Solicite ao usuário e obtenha um apropriado System.Net.NetworkCredential.

  2. Adicione um objeto de parâmetro de canal personalizado à coleção retornada pelo IChannel.GetProperty método no IClientChannel objeto com um parâmetro de tipo de System.ServiceModel.Channels.ChannelParameterCollection. Esse objeto de parâmetro de canal é usado pelo personalizado System.ServiceModel.ClientCredentialsSecurityTokenManager para estabelecer os tokens de segurança para o canal.

  3. Retorno.

Para inserir IInteractiveChannelInitializer:

  1. Substitua o IEndpointBehavior.ApplyClientBehavior método na System.ServiceModel.Description.ClientCredentials classe.

  2. Nesse método, determine se o ponto de extremidade requer um IInteractiveChannelInitializer e, se for o caso, adicione a ClientRuntime.InteractiveChannelInitializers IInteractiveChannelInitializer coleção.

Há duas maneiras de os desenvolvedores de aplicativos usarem uma inserção IInteractiveChannelInitializer. O aplicativo cliente pode chamar ou ClientBase<TChannel>.DisplayInitializationUI IClientChannel.DisplayInitializationUI (ou uma versão assíncrona) antes de abrir o canal (a abordagem explícita ) ou simplesmente chamar a primeira operação (a abordagem implícita ).

Se estiver usando a abordagem implícita, o aplicativo deverá chamar a primeira operação em uma ClientBase<TChannel> ou IClientChannel extensão. Se ele chamar algo diferente da primeira operação, uma exceção será lançada.

Se estiver usando a abordagem explícita, o aplicativo deverá executar as seguintes etapas na ordem:

  1. Chame ou ClientBase<TChannel>.DisplayInitializationUI IClientChannel.DisplayInitializationUI (ou uma versão assíncrona).

  2. Quando os inicializadores tiverem retornado, chame o Open método no IClientChannel objeto ou no IClientChannel objeto retornado da ClientBase<TChannel>.InnerChannel propriedade.

  3. Chamar as operações.

É recomendável que os aplicativos de qualidade de produção controlem o processo de interface do usuário adotando a abordagem explícita.

Aplicativos que usam a abordagem implícita invocam os inicializadores de interface do usuário, mas se o usuário do aplicativo não responder dentro do período de tempo limite de envio da associação, uma exceção será gerada quando a interface do usuário retornar.

Métodos

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Uma chamada assíncrona para começar a usar uma interface do usuário para obter informações de credenciais.

EndDisplayInitializationUI(IAsyncResult)

Chamado quando o BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) é concluído.

Aplica-se a