Aracılığıyla paylaş


IInteractiveChannelInitializer Arabirim

Tanım

Bir istemci uygulamasının, kanalı oluşturmadan önce kimlik bilgilerini toplamak üzere bir kullanıcı arabirimi görüntülemesini sağlayan yöntemleri tanımlar.

public interface class IInteractiveChannelInitializer
public interface IInteractiveChannelInitializer
type IInteractiveChannelInitializer = interface
Public Interface IInteractiveChannelInitializer
Türetilmiş

Açıklamalar

bir istemci uygulamasının IInteractiveChannelInitializer , uygulama kullanıcısının bir kanalı açmadan önce kimlik bilgilerini oluşturmasına veya seçmesine olanak tanıyan bir kullanıcı arabirimi görüntülemesini sağlamak için arabirimini uygulayın.

uygulamasını uygulamak IInteractiveChannelInitializeriçin içinde aşağıdaki adımları gerçekleştirin IInteractiveChannelInitializer.BeginDisplayInitializationUI:

  1. Kullanıcıya sorarak uygun System.Net.NetworkCredentialbir elde edin.

  2. nesnesi üzerinde IClientChannel yöntemi tarafından IChannel.GetProperty döndürülen koleksiyona türü parametresiyle özel bir kanal parametresi System.ServiceModel.Channels.ChannelParameterCollectionnesnesi ekleyin. Bu kanal parametresi nesnesi, kanalın güvenlik belirteçlerini oluşturmak için özel System.ServiceModel.ClientCredentialsSecurityTokenManager tarafından kullanılır.

  3. Dönüş.

IInteractiveChannelInitializerEklemek için:

  1. sınıfındaki IEndpointBehavior.ApplyClientBehavior yöntemini System.ServiceModel.Description.ClientCredentials geçersiz kılın.

  2. Bu yöntemde uç noktanın bir IInteractiveChannelInitializer gerektip gerektirmediğini belirleyin ve gerekliyse öğesini koleksiyona ClientRuntime.InteractiveChannelInitializers ekleyinIInteractiveChannelInitializer.

Uygulama geliştiricilerinin eklenen IInteractiveChannelInitializer'i kullanabilmesinin iki yolu vardır. İstemci uygulaması kanalı açmadan önce veya IClientChannel.DisplayInitializationUI (veya zaman uyumsuz bir sürümü) çağırabilir ClientBase<TChannel>.DisplayInitializationUI (açık yaklaşım) veya yalnızca ilk işlemi (örtük yaklaşım) çağırabilir.

Örtük yaklaşımı kullanıyorsanız, uygulamanın bir ClientBase<TChannel> veya IClientChannel uzantısında ilk işlemi çağırması gerekir. İlk işlem dışında bir şey çağırırsa, bir özel durum oluşturulur.

Açık yaklaşımı kullanıyorsanız, uygulamanın sırasıyla aşağıdaki adımları gerçekleştirmesi gerekir:

  1. ClientBase<TChannel>.DisplayInitializationUI veya IClientChannel.DisplayInitializationUI (ya da zaman uyumsuz bir sürümü) çağır.

  2. Başlatıcılar döndürdüyse, nesnede IClientChannel veya özelliğinden döndürülen nesnede IClientChannel yöntemini çağırın OpenClientBase<TChannel>.InnerChannel.

  3. Çağrı işlemleri.

Üretim kalitesindeki uygulamaların açık yaklaşımı benimseyerek kullanıcı arabirimi işlemini denetlemesi önerilir.

Örtük yaklaşımı kullanan uygulamalar kullanıcı arabirimi başlatıcılarını çağırır, ancak uygulamanın kullanıcısı bağlamanın gönderme zaman aşımı süresi içinde yanıt vermezse, kullanıcı arabirimi döndürdüğünde bir özel durum oluşur.

Yöntemler

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object)

Kimlik bilgileri almak için kullanıcı arabirimini kullanmaya başlamak için zaman uyumsuz bir çağrı.

EndDisplayInitializationUI(IAsyncResult)

BeginDisplayInitializationUI(IClientChannel, AsyncCallback, Object) tamamlandığında çağrılır.

Şunlara uygulanır