IInteractiveChannelInitializer Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
Solicite ao usuário e obtenha um apropriado System.Net.NetworkCredential.
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.
Retorno.
Para inserir IInteractiveChannelInitializer:
Substitua o IEndpointBehavior.ApplyClientBehavior método na System.ServiceModel.Description.ClientCredentials classe.
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:
Chame ou ClientBase<TChannel>.DisplayInitializationUI IClientChannel.DisplayInitializationUI (ou uma versão assíncrona).
Quando os inicializadores tiverem retornado, chame o Open método no IClientChannel objeto ou no IClientChannel objeto retornado da ClientBase<TChannel>.InnerChannel propriedade.
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. |