Comparteix a través de


IInteractiveChannelInitializer Interfaz

Definición

Define los métodos que permiten a una aplicación cliente mostrar una interfaz de usuario para recopilar información de identidad antes de crear el canal.

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

Comentarios

Implemente la interfaz IInteractiveChannelInitializer para permitir que una aplicación cliente muestre una interfaz de usuario que permita al usuario de la aplicación crear o seleccionar las credenciales antes de abrir un canal.

Para implementar IInteractiveChannelInitializer, realice los pasos siguientes en IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Dé una indicación al usuario y obtenga un objeto System.Net.NetworkCredential adecuado.

  2. Agregue un objeto de parámetro de canal personalizado a la colección devuelta por el método IChannel.GetProperty en el objeto IClientChannel con un parámetro de tipo de System.ServiceModel.Channels.ChannelParameterCollection. El System.ServiceModel.ClientCredentialsSecurityTokenManager personalizado utiliza este objeto de parámetro de canal para establecer los tokens de seguridad para el canal.

  3. Return.

Para insertar IInteractiveChannelInitializer:

  1. Invalide el método IEndpointBehavior.ApplyClientBehavior en la clase System.ServiceModel.Description.ClientCredentials.

  2. En ese método, determine si el extremo requiere IInteractiveChannelInitializer y, si es así, agregue IInteractiveChannelInitializer a la colección ClientRuntime.InteractiveChannelInitializers.

Los desarrolladores de aplicaciones pueden usar un IInteractiveChannelInitializerinsertado de dos formas. La aplicación cliente puede llamar a ClientBase<TChannel>.DisplayInitializationUI o IClientChannel.DisplayInitializationUI (o una versión asincrónica) antes de abrir el canal (el enfoque explícito ) o simplemente llamar a la primera operación (el enfoque implícito ).

Si se utiliza el enfoque implícito, la aplicación debe llamar a la primera operación en una extensión de ClientBase<TChannel> o IClientChannel. Si no llama a la primera operación, se inicia una excepción.

Si se utiliza el enfoque explícito, la aplicación debe realizar los pasos siguientes en orden:

  1. Llamar a ClientBase<TChannel>.DisplayInitializationUI o a IClientChannel.DisplayInitializationUI (o una versión asincrónica).

  2. Cuando se hayan devuelto los inicializadores, llamar al método Open en el objeto IClientChannel o en el objeto IClientChannel devuelto de la propiedad ClientBase<TChannel>.InnerChannel.

  3. Llame a las operaciones.

Se recomienda que las aplicaciones de calidad de producción controlen el proceso de la interfaz de usuario mediante el enfoque explícito.

Las aplicaciones que utilizan el enfoque implícito invocan los inicializadores de la interfaz de usuario, pero si el usuario de la aplicación no responde dentro del plazo de tiempo de espera de envío del enlace, se inicia una excepción cuando se devuelve la interfaz de usuario.

Métodos

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Llamada asincrónica para empezar a usar una interfaz de usuario con el fin de obtener información de las credenciales.

EndDisplayInitializationUI(IAsyncResult)

Se le llama cuando BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) ha finalizado.

Se aplica a