IInteractiveChannelInitializer Interface

Definition

Définit les méthodes qui permettent à une application cliente d'afficher une interface utilisateur pour rassembler des informations d'identité avant de créer le canal.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
Derived

Remarks

Implémentez l'interface IInteractiveChannelInitializer pour permettre à une application cliente d'afficher une interface utilisateur autorise l'utilisateur de l'application à créer ou sélectionner les informations d'identification avant d'ouvrir un canal.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.

Pour implémenter IInteractiveChannelInitializer, exécutez les étapes suivantes dans IInteractiveChannelInitializer.BeginDisplayInitializationUI :To implement IInteractiveChannelInitializer, perform the following steps in IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Invitez l'utilisateur et obtenez des System.Net.NetworkCredentialappropriées.Prompt the user and obtain an appropriate System.Net.NetworkCredential.

  2. Ajoutez un objet de paramètre de canal personnalisé à la collection retournée par la méthode IChannel.GetProperty sur l’objet IClientChannel avec un paramètre de type 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. Cet objet de paramètre de canal est utilisé par le System.ServiceModel.ClientCredentialsSecurityTokenManager personnalisé pour établir les jetons de sécurité du canal.This channel parameter object is used by the custom System.ServiceModel.ClientCredentialsSecurityTokenManager to establish the security tokens for the channel.

  3. Retour.Return.

Pour insérer IInteractiveChannelInitializer :To insert IInteractiveChannelInitializer:

  1. Substituez la méthode IEndpointBehavior.ApplyClientBehavior sur la classe System.ServiceModel.Description.ClientCredentials.Override the IEndpointBehavior.ApplyClientBehavior method on the System.ServiceModel.Description.ClientCredentials class.

  2. Dans cette méthode, déterminez si le point de terminaison requiert un IInteractiveChannelInitializer. Si c’est le cas, ajoutez l’élément IInteractiveChannelInitializer à la collection ClientRuntime.InteractiveChannelInitializers.In that method, determine whether the endpoint requires an IInteractiveChannelInitializer and if so, add the IInteractiveChannelInitializer to the ClientRuntime.InteractiveChannelInitializers collection.

Les développeurs d'applications peuvent utiliser un IInteractiveChannelInitializerinséré de deux façons.There are two ways application developers can make use of an inserted IInteractiveChannelInitializer. L’application cliente peut appeler ClientBase<TChannel>.DisplayInitializationUI ou IClientChannel.DisplayInitializationUI (ou une version asynchrone) avant d’ouvrir le canal (approche explicite ) ou simplement appeler la première opération (approche implicite ).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).

Lors de l'utilisation de l'approche implicite, l'application doit appeler la première opération sur une extension ClientBase<TChannel> ou IClientChannel.If using the implicit approach, the application must call the first operation on an ClientBase<TChannel> or IClientChannel extension. Si elle appelle une autre opération que la première, une exception est levée.If it calls anything other than the first operation, an exception is thrown.

Lors de l'utilisation de l'approche explicite, l'application doit exécuter les étapes suivantes, dans l'ordre :If using the explicit approach, the application must perform the following steps in order:

  1. Appelez ClientBase<TChannel>.DisplayInitializationUI ou IClientChannel.DisplayInitializationUI (ou une version asynchrone).Call either ClientBase<TChannel>.DisplayInitializationUI or IClientChannel.DisplayInitializationUI (or an asynchronous version).

  2. Lorsque les initialiseurs ont retourné, appelez la méthode Open sur l'objet IClientChannel ou sur l'objet IClientChannel retourné par la propriété 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. Appelez les opérations.Call operations.

Il est recommandé que le traitement du contrôle des applications de production de qualité de l'interface utilisateur s'effectue en adoptant l'approche explicite.It is recommended that production-quality applications control of the user-interface process by adopting the explicit approach.

Les applications qui utilisent l'approche implicite appellent les initialiseurs d'interface utilisateur, mais si l'utilisateur de l'application ne répond pas avant la fin du délai d'attente d'envoi de la liaison, une exception est levée lorsque l'interface utilisateur retourne.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.

Methods

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Appel asynchrone pour commencer l'utilisation d'une interface utilisateur pour obtenir les informations d'identification.An asynchronous call to begin using a user interface to obtain credential information.

EndDisplayInitializationUI(IAsyncResult)

Appelé lorsque BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) est terminé.Called when the BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) has finished.

Applies to