IInteractiveChannelInitializer 인터페이스

정의

클라이언트 애플리케이션에서 채널을 만들기 전에 사용자 인터페이스를 표시하여 ID 정보를 수집할 수 있게 해주는 메서드를 정의합니다.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
파생

설명

채널을 열기 전에 애플리케이션 사용자가 자격 증명을 만들거나 선택할 수 있는 사용자 인터페이스를 클라이언트 애플리케이션에서 표시하게 하려면 IInteractiveChannelInitializer 인터페이스를 구현합니다.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.

IInteractiveChannelInitializer를 구현하려면 IInteractiveChannelInitializer.BeginDisplayInitializationUI에서 다음 단계를 수행합니다.To implement IInteractiveChannelInitializer, perform the following steps in IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. 사용자에게 프롬프트를 표시하고 적절한 System.Net.NetworkCredential을 가져옵니다.Prompt the user and obtain an appropriate System.Net.NetworkCredential.

  2. IChannel.GetProperty 형식의 매개 변수를 사용하여 IClientChannel 개체에서 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. 이 채널 매개 변수 개체는 사용자 지정 System.ServiceModel.ClientCredentialsSecurityTokenManager가 채널에 대한 보안 토큰을 설정하는 데 사용됩니다.This channel parameter object is used by the custom System.ServiceModel.ClientCredentialsSecurityTokenManager to establish the security tokens for the channel.

  3. 반환합니다.Return.

IInteractiveChannelInitializer를 삽입하려면 다음을 수행합니다.To insert IInteractiveChannelInitializer:

  1. IEndpointBehavior.ApplyClientBehavior 클래스에서 System.ServiceModel.Description.ClientCredentials 메서드를 재정의합니다.Override the IEndpointBehavior.ApplyClientBehavior method on the System.ServiceModel.Description.ClientCredentials class.

  2. 이 메서드에서 엔드포인트에 IInteractiveChannelInitializer가 필요한지 여부를 확인하고, 필요한 경우 IInteractiveChannelInitializer 컬렉션에 ClientRuntime.InteractiveChannelInitializers를 추가합니다.In that method, determine whether the endpoint requires an IInteractiveChannelInitializer and if so, add the IInteractiveChannelInitializer to the ClientRuntime.InteractiveChannelInitializers collection.

애플리케이션 개발자는 삽입된 IInteractiveChannelInitializer를 두 가지 방법으로 사용할 수 있습니다.There are two ways application developers can make use of an inserted IInteractiveChannelInitializer. 클라이언트 애플리케이션이 호출할 수 있습니다 ClientBase<TChannel>.DisplayInitializationUI 또는 IClientChannel.DisplayInitializationUI (또는 비동기 버전) 채널을 열기 전에 (합니다 명시적 접근 방식을) 첫 번째 작업을 호출 하거나 (의 암시적 접근 방식).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).

암시적 방법을 사용하는 경우 애플리케이션은 ClientBase<TChannel> 또는 IClientChannel 확장에서 첫 번째 작업을 호출해야 합니다.If using the implicit approach, the application must call the first operation on an ClientBase<TChannel> or IClientChannel extension. 다른 작업을 호출하면 예외가 throw됩니다.If it calls anything other than the first operation, an exception is thrown.

명시적 방법을 사용하는 경우 애플리케이션은 다음 단계를 순서대로 수행해야 합니다.If using the explicit approach, the application must perform the following steps in order:

  1. ClientBase<TChannel>.DisplayInitializationUI 또는 IClientChannel.DisplayInitializationUI(또는 비동기 버전)를 호출합니다.Call either ClientBase<TChannel>.DisplayInitializationUI or IClientChannel.DisplayInitializationUI (or an asynchronous version).

  2. 이니셜라이저가 반환되면 Open 개체 또는 IClientChannel 속성에서 반환된 IClientChannel 개체에서 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. 작업을 호출합니다.Call operations.

프로덕션 품질 애플리케이션에서는 명시적 방법을 사용하여 사용자 인터페이스 프로세스를 제어하는 것이 좋습니다.It is recommended that production-quality applications control of the user-interface process by adopting the explicit approach.

암시적 방법을 사용하는 애플리케이션은 사용자 인터페이스 이니셜라이저를 호출하지만, 애플리케이션 사용자가 바인딩에 대한 전송 시간 제한 내에 응답하지 않을 경우 사용자 인터페이스가 반환될 때 예외가 throw됩니다.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.

메서드

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

자격 증명 정보를 얻기 위해 사용자 인터페이스를 사용하여 시작할 비동기 호출입니다.An asynchronous call to begin using a user interface to obtain credential information.

EndDisplayInitializationUI(IAsyncResult)

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)가 완료되면 호출됩니다.Called when the BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) has finished.

적용 대상