IInteractiveChannelInitializer Interface
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define os métodos que permitem a uma aplicação cliente exibir uma interface de utilizador para recolher informações de identidade antes de criar o canal.
public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
- Derivado
Observações
Implemente a IInteractiveChannelInitializer interface para permitir que uma aplicação cliente mostre uma interface de utilizador que permita ao utilizador da aplicação criar ou selecionar as credenciais antes de abrir um canal.
Para implementar IInteractiveChannelInitializer, execute os seguintes passos em IInteractiveChannelInitializer.BeginDisplayInitializationUI:
Solicite ao utilizador e obtenha uma resposta adequada System.Net.NetworkCredential.
Adicione um objeto de parâmetro de canal personalizado à coleção devolvida pelo IChannel.GetProperty método no IClientChannel objeto com um parâmetro de tipo de System.ServiceModel.Channels.ChannelParameterCollection. Este objeto de parâmetro de canal é usado pelo costume System.ServiceModel.ClientCredentialsSecurityTokenManager para estabelecer os tokens de segurança do canal.
Volta.
Para inserir IInteractiveChannelInitializer:
Anule o IEndpointBehavior.ApplyClientBehavior método da System.ServiceModel.Description.ClientCredentials turma.
Nesse método, determina se o endpoint requer um IInteractiveChannelInitializer e, se sim, adiciona o IInteractiveChannelInitializer à ClientRuntime.InteractiveChannelInitializers coleção.
Existem duas formas de os programadores de aplicações utilizarem um .IInteractiveChannelInitializer A aplicação cliente pode chamar ou ClientBase<TChannel>.DisplayInitializationUIIClientChannel.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 usar a abordagem implícita, a aplicação deve chamar a primeira operação numa ClientBase<TChannel> extensão ou IClientChannel . Se for chamada qualquer operação diferente da primeira, uma exceção será lançada.
Se estiver usando a abordagem explícita, o aplicativo deve executar as seguintes etapas na ordem:
Chame ClientBase<TChannel>.DisplayInitializationUI ou IClientChannel.DisplayInitializationUI (ou uma versão assíncrona).
Quando os inicializadores retornarem, chame ou o método Open no objeto IClientChannel ou no objeto IClientChannel retornado da propriedade ClientBase<TChannel>.InnerChannel.
Operações de chamada.
Recomenda-se que as aplicações de qualidade de produção controlem o processo da interface de utilizador adotando a abordagem explícita.
Os aplicativos que usam a abordagem implícita invocam os inicializadores da interface do usuário, mas se o usuário do aplicativo não responder dentro do período de tempo limite de envio da ligação, uma exceção será lançada quando a interface do usuário retornar.
Métodos
| Name | Description |
|---|---|
| BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) |
Uma chamada assíncrona para começar a usar uma interface de utilizador para obter informações de credenciais. |
| EndDisplayInitializationUI(IAsyncResult) |
Liguei quando BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) terminou. |