IInteractiveChannelInitializer Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert die Methoden, mit denen eine Clientanwendung eine Benutzeroberfläche zum Sammeln von Identitätsinformationen vor dem Erstellen des Kanals anzeigen kann.
public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
- Abgeleitet
Hinweise
Implementieren Sie die IInteractiveChannelInitializer Schnittstelle, um einer Clientanwendung die Anzeige einer Benutzeroberfläche zu ermöglichen, mit der der Benutzer der Anwendung die Anmeldeinformationen vor dem Öffnen eines Kanals erstellen oder auswählen kann.
Führen Sie zum Implementieren IInteractiveChannelInitializerdie folgenden Schritte aus:IInteractiveChannelInitializer.BeginDisplayInitializationUI
Fordern Sie den Benutzer auf, und erhalten Sie eine entsprechende System.Net.NetworkCredential.
Fügen Sie der Auflistung ein benutzerdefiniertes Kanalparameterobjekt hinzu, das von der IChannel.GetProperty Methode für das IClientChannel Objekt mit einem Typparameter zurückgegeben System.ServiceModel.Channels.ChannelParameterCollectionwird. Dieses Kanalparameterobjekt wird vom benutzerdefinierten System.ServiceModel.ClientCredentialsSecurityTokenManager Verwendet, um die Sicherheitstoken für den Kanal einzurichten.
Rückgabe.
So fügen Sie folgendes ein IInteractiveChannelInitializer:
Überschreiben Sie die IEndpointBehavior.ApplyClientBehavior Methode für die System.ServiceModel.Description.ClientCredentials Klasse.
Ermitteln Sie in dieser Methode, ob für den Endpunkt ein IInteractiveChannelInitializer Und wenn dies der Vorgang erforderlich ist, fügen Sie die IInteractiveChannelInitializerClientRuntime.InteractiveChannelInitializers Auflistung hinzu.
Es gibt zwei Möglichkeiten, wie Anwendungsentwickler ein eingefügtes IInteractiveChannelInitializerverwenden können. Die Clientanwendung kann entweder ClientBase<TChannel>.DisplayInitializationUI oder IClientChannel.DisplayInitializationUI (oder eine asynchrone Version) vor dem Öffnen des Kanals (dem expliziten Ansatz) aufrufen oder einfach den ersten Vorgang (den impliziten Ansatz) aufrufen.
Bei Verwendung des impliziten Ansatzes muss die Anwendung den ersten Vorgang für eine ClientBase<TChannel> oder IClientChannel eine Erweiterung aufrufen. Wenn ein anderes Element als der erste Vorgang aufgerufen wird, wird eine Ausnahme ausgelöst.
Wenn Sie den expliziten Ansatz verwenden, muss die Anwendung die folgenden Schritte ausführen:
Rufen Sie entweder ClientBase<TChannel>.DisplayInitializationUI oder IClientChannel.DisplayInitializationUI (oder eine asynchrone Version) auf.
Wenn die Initialisierer zurückgegeben wurden, rufen Sie entweder die Open-Methode für das IClientChannel-Objekt oder für das IClientChannel-Objekt auf, das durch die ClientBase<TChannel>.InnerChannel-Eigenschaft zurückgegeben wird.
Anrufvorgänge.
Es wird empfohlen, dass Produktionsqualitätsanwendungen den Prozess der Benutzeroberfläche kontrollieren, indem sie den expliziten Ansatz übernehmen.
Anwendungen, die den impliziten Ansatz verwenden, rufen die Initialisierer der Benutzeroberfläche auf, aber wenn der Benutzer der Anwendung nicht innerhalb des Send-Timeout-Zeitraums der Bindung reagiert, wird eine Ausnahme ausgelöst, wenn die Benutzeroberfläche zurückkehrt.
Methoden
| Name | Beschreibung |
|---|---|
| BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) |
Ein asynchroner Aufruf, um mit der Verwendung einer Benutzeroberfläche zu beginnen, um Anmeldeinformationen abzurufen. |
| EndDisplayInitializationUI(IAsyncResult) |
Wird aufgerufen, wenn der BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) Vorgang abgeschlossen ist. |