Condividi tramite


IInteractiveChannelInitializer Interfaccia

Definizione

Definisce i metodi che consentono a un'applicazione client di visualizzare un'interfaccia utente per raccogliere informazioni di identità prima di creare il canale.

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

Commenti

Implementare l'interfaccia IInteractiveChannelInitializer per consentire a un'applicazione client di visualizzare un'interfaccia utente che consente all'utente dell'applicazione di creare o selezionare le credenziali prima di aprire un canale.

Per implementare IInteractiveChannelInitializer, attenersi ai passaggi seguenti in IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Richiedere e ottenere dall'utente un System.Net.NetworkCredential appropriato.

  2. Aggiungere un oggetto parametro del canale personalizzato alla raccolta restituita dal metodo IChannel.GetProperty sull'oggetto IClientChannel con un parametro di tipo System.ServiceModel.Channels.ChannelParameterCollection. Questo oggetto parametro del canale viene utilizzato dall'elemento System.ServiceModel.ClientCredentialsSecurityTokenManager personalizzato per stabilire i token di sicurezza per il canale.

  3. Eseguire.

Per inserire IInteractiveChannelInitializer.

  1. Eseguire l'override del metodo IEndpointBehavior.ApplyClientBehavior nella classe System.ServiceModel.Description.ClientCredentials

  2. In quel metodo, determinare se è necessario un IInteractiveChannelInitializer all'endpoint e in quel caso, aggiungere IInteractiveChannelInitializer alla raccolta ClientRuntime.InteractiveChannelInitializers.

Esistono due modi in cui gli sviluppatori di applicazioni possono utilizzare un IInteractiveChannelInitializer inserito. L'applicazione client può chiamare ClientBase<TChannel>.DisplayInitializationUI o IClientChannel.DisplayInitializationUI (o una versione asincrona) prima di aprire il canale (approccio esplicito ) o semplicemente chiamare la prima operazione (approccio implicito ).

Se si utilizza l'approccio implicito, l'applicazione deve chiamare la prima operazione su un'estensione ClientBase<TChannel> o IClientChannel. Se chiama un elemento diverso dalla prima operazione, viene generata un'eccezione.

Se si usa l'approccio esplicito, l'applicazione deve eseguire i passaggi seguenti nell'ordine rappresentato:

  1. Chiamare ClientBase<TChannel>.DisplayInitializationUI o IClientChannel.DisplayInitializationUI (o una versione asincrona).

  2. Quando gli inizializzatori restituiscono un valore, chiamare il metodo Open sull'oggetto IClientChannel o sull'oggetto IClientChannel restituito dalla proprietà ClientBase<TChannel>.InnerChannel.

  3. Chiamare le operazioni.

Si consiglia che le applicazioni di alta qualità controllino il processo dell'interfaccia utente adottando l'approccio esplicito.

Le applicazioni che usano l'approccio implicito richiamano gli inizializzatori dell'interfaccia utente, ma se l'utente dell'applicazione non risponde entro il periodo di timeout di invio dell'associazione, viene generata un'eccezione quando viene restituita l'interfaccia utente.

Metodi

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Chiamata asincrona per cominciare a utilizzare un'interfaccia utente al fine di ottenere informazioni sulle credenziali.

EndDisplayInitializationUI(IAsyncResult)

Elemento che viene chiamato quando il metodo BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) viene modificato.

Si applica a