IInteractiveChannelInitializer Interface

Définition

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.

public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
Dérivé

Remarques

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.

Pour implémenter IInteractiveChannelInitializer, exécutez les étapes suivantes dans IInteractiveChannelInitializer.BeginDisplayInitializationUI :

  1. Invitez l'utilisateur et obtenez des System.Net.NetworkCredentialappropriées.

  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. Cet objet de paramètre de canal est utilisé par le System.ServiceModel.ClientCredentialsSecurityTokenManager personnalisé pour établir les jetons de sécurité du canal.

  3. Retour.

Pour insérer IInteractiveChannelInitializer :

  1. Substituez la méthode IEndpointBehavior.ApplyClientBehavior sur la classe System.ServiceModel.Description.ClientCredentials.

  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.

Les développeurs d'applications peuvent utiliser un IInteractiveChannelInitializerinséré de deux façons. L’application cliente peut appeler ClientBase<TChannel>.DisplayInitializationUI ou IClientChannel.DisplayInitializationUI (ou une version asynchrone) avant d’ouvrir le canal (l’approche explicite ) ou simplement appeler la première opération (l’approche implicite ).

Lors de l'utilisation de l'approche implicite, l'application doit appeler la première opération sur une extension ClientBase<TChannel> ou IClientChannel. Si elle appelle une autre opération que la première, une exception est levée.

Lors de l'utilisation de l'approche explicite, l'application doit exécuter les étapes suivantes, dans l'ordre :

  1. Appelez ClientBase<TChannel>.DisplayInitializationUI ou IClientChannel.DisplayInitializationUI (ou une version asynchrone).

  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.

  3. Appelez les opérations.

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.

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.

Méthodes

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Appel asynchrone pour commencer l'utilisation d'une interface utilisateur pour obtenir les informations d'identification.

EndDisplayInitializationUI(IAsyncResult)

Appelé lorsque BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) est terminé.

S’applique à