Aracılığıyla paylaş


Güvenilir Oturumlar Genel Bakış

Windows Communication Foundation (WCF) SOAP güvenilir mesajlaşma, SOAP uç noktaları arasında uçtan uca ileti aktarımı güvenilirliği sağlar. Bunu, aktarım hatalarının ve SOAP ileti düzeyi hatalarının aşılmasıyla güvenilir olmayan ağlarda yapar. Özellikle, SOAP veya aktarım aracıları arasında gönderilen iletiler için oturum tabanlı, tek ve (isteğe bağlı) sıralı teslim sağlar. Oturum tabanlı teslim, isteğe bağlı olarak iletilerin sıralanmasıyla bir oturumdaki iletileri gruplandırma olanağı sağlar.

Bu konuda güvenilir oturumlar, bunların nasıl ve ne zaman kullanılacağı ve bunların güvenliğinin nasıl sağlandığı açıklanmaktadır.

WCF güvenilir oturumları

WCF güvenilir oturumları, WS-ReliableMessaging protokolü tarafından tanımlanan SOAP güvenilir mesajlaşma uygulamasıdır.

WCF SOAP güvenilir mesajlaşma, mesajlaşma uç noktalarını ayıran aracıların sayısından veya türünden bağımsız olarak iki uç nokta arasında uçtan uca güvenilir bir oturum sağlar. Buna, ILETILERIn uç noktalar arasında akması için gereken SOAP (örneğin, HTTP proxy'leri) kullanmayan aktarım aracıları veya SOAP kullanan aracılar (örneğin, SOAP tabanlı yönlendiriciler veya köprüler) dahildir. Güvenilir bir oturum kanalı, etkileşimli iletişimi destekler, böylece böyle bir kanal tarafından bağlanan hizmetler eşzamanlı olarak çalışır ve düşük gecikme süresi koşulları altında ,yani nispeten kısa bir süre içinde iletileri alıp işler. Bu bağlama, bu bileşenlerin birlikte ilerlemesi veya birlikte başarısız olması anlamına gelir, bu nedenle aralarında yalıtım sağlanmaz.

Güvenilir bir oturum iki tür hatayı maskeler:

  • Kayıp veya yinelenen iletileri ve gönderildikleri sıraylan farklı bir sırayla gelen iletileri içeren SOAP ileti düzeyi hataları.

  • Aktarım hataları.

Güvenilir bir oturum, WS-ReliableMessaging protokol ve SOAP ileti düzeyi hatalarını maskeleme amacıyla bellek içi aktarım penceresi uygular ve aktarım hataları durumunda bağlantıları yeniden kurar.

Güvenilir bir oturum, TCP'nin IP paketleri için sağladığı SOAP iletilerini sağlar. TCP yuva bağlantısı, düğümler arasında IP paketlerinin tek bir sıralı aktarımını sağlar. Güvenilir kanal aynı tür güvenilir aktarım sağlar, ancak TCP yuva güvenilirliğinden aşağıdaki yollarla farklıdır:

  • Güvenilirlik, rastgele boyutlandırılmış bir bayt paketi için değil SOAP ileti düzeyindedir.

  • Güvenilirlik yalnızca TCP üzerinden aktarım için değil aktarımdan bağımsızdır.

  • Güvenilirlik belirli bir aktarım oturumuna (örneğin, TCP bağlantısının sağladığı oturum) bağlı değildir ve güvenilir oturumun ömrü boyunca birden çok aktarım oturumunu eşzamanlı veya sıralı olarak kullanabilir.

  • Güvenilir oturum, aralarında bağlantı için gereken aktarım bağlantısı sayısından bağımsız olarak gönderen ve alıcı SOAP uç noktaları arasındadır. Kısacası, TCP güvenilirliği aktarım bağlantısının sona erdiği yerde sona ererken, güvenilir bir oturum uçtan uca güvenilirlik sağlar.

Güvenilir oturumlar ve bağlamalar

Daha önce belirtildiği gibi, güvenilir bir oturum aktarım nötrdür. Ayrıca, istek-yanıt veya çift yönlü gibi birçok ileti değişimi deseni üzerinde güvenilir bir oturum oluşturabilirsiniz. WCF güvenilir oturumu, bir bağlama kümesinin özelliği olarak kullanıma sunulur.

Şu uç noktalarda güvenilir bir oturum kullanın:

  • HTTP tabanlı aktarım standart bağlamaları:

    • WsHttpBinding ve istek-yanıt veya tek yönlü sözleşmeleri kullanıma sunar.

    • İstek yanıtı veya basit bir tek yönlü hizmet sözleşmesi üzerinden güvenilir oturum kullanırken.

    • WsDualHttpBinding ve çift yönlü, istek-yanıt veya tek yönlü sözleşmeleri kullanıma sunar.

    • WsFederationHttpBinding ve istek-yanıt veya tek yönlü sözleşmeleri kullanıma sunar.

  • TCP tabanlı aktarım standart bağlamaları:

    • NetTcpBinding ve çift yönlü, yanıt isteme veya tek yönlü sözleşmeleri kullanıma sunma.

HTTPS (sorunlar hakkında daha fazla bilgi için bkz . Güvenilir oturumlar ve güvenlik) veya adlandırılmış kanal bağlaması gibi özel bir bağlama oluşturarak diğer bağlamalarda güvenilir bir oturum kullanın.

Güvenilir bir oturumu farklı temel kanal türlerine yığabilirsiniz ve sonuçta elde edilen güvenilir oturum kanalı şekli farklılık gösterir. Hem istemcide hem de sunucuda desteklenen güvenilir oturum kanalının türü, kullanılan temel kanalın türüne bağlıdır. Aşağıdaki tabloda, temel alınan kanal türünün işlevi olarak istemcide desteklenen oturum kanalı türleri listelenmektedir.

Desteklenen güvenilir oturum kanalı türleri† IRequestChannel IRequestSessionChannel IDuplexChannel IDuplexSessionChannel
IOutputSessionChannel Yes Evet Evet Evet
IRequestSessionChannel Evet Evet Hayı Hayı
IDuplexSessionChannel Hayı Hayı Evet Yes

† Desteklenen kanal türleri, yöntemine BuildChannelFactory<TChannel>(BindingContext) geçirilen genel TChannel parametre değeri için kullanılabilen değerlerdir.

Aşağıdaki tabloda, temel alınan kanal türünün işlevi olarak sunucuda desteklenen oturum kanalı türleri listelenmektedir.

Desteklenen güvenilir oturum kanalı türleri‡ IReplyChannel IReplySessionChannel IDuplexChannel IDuplexSessionChannel
IInputSessionChannel Yes Evet Evet Evet
IReplySessionChannel Evet Evet Hayı Hayı
IDuplexSessionChannel Hayı Hayı Evet Yes

‡Desteklenen kanal türleri, yöntemine BuildChannelListener<TChannel>(BindingContext) geçirilen genel TChannel parametre değeri için kullanılabilen değerlerdir.

Güvenilir oturumlar ve güvenlik

Güvenilir bir oturumun güvenliğini sağlamak, iletişim sağlayan tarafların (hizmet ve istemci) kimliğinin doğrulandığından ve oturumda değiştirilen iletilerin değiştirilmediğinden emin olmak için önemlidir. Ayrıca, her bir güvenilir oturumun bütünlüğünü sağlamak önemlidir. Güvenilir oturum, bir güvenlik oturumu kanalı tarafından temsil edilen ve yönetilen bir güvenlik bağlamı ile bağlanarak güvenli hale getirilir. Güvenlik kanalı bir güvenlik oturumu sağlar. Oturum kurulumu sırasında değiştirilen güvenlik belirteçleri daha sonra güvenilir oturumdaki iletilerin güvenliğini sağlamak için kullanılır.

TCP-S üzerinden güvenilir bir oturum olduğunda, TCP oturumu güvenilir oturuma bağlanır. Bu nedenle, aktarım güvenliği güvenliğin de güvenilir oturuma bağlı olmasını sağlar. Bu durumda, bağlantının yeniden kurulması kapatılır.

Tek özel durum HTTPS kullanmaktır. Güvenli Yuva Katmanı (SSL) oturumu güvenilir oturuma bağlı değildir. Güvenlik bağlamını paylaşan oturumlar (SSL oturumu) birbirinden korunmadığından bu bir tehdit oluşturur; bu, uygulamaya bağlı olarak gerçek bir tehdit olabilir veya olmayabilir.

Güvenilir oturumları kullanma

WCF güvenilir oturumlarını kullanmak için, güvenilir oturumu destekleyen bağlamaya sahip bir uç nokta oluşturun. WCF'nin güvenilir oturum etkin olarak sağladığı sistem tarafından sağlanan bağlamalardan birini kullanın veya bunu yapmak için kendi özel bağlamanızı oluşturun.

Güvenilir oturumu varsayılan olarak destekleyen ve etkinleştiren sistem tanımlı bağlamalar şunlardır:

Güvenilir bir oturumu seçenek olarak destekleyen ancak varsayılan olarak etkinleştirmeyen sistem tarafından sağlanan bağlamalar şunlardır:

Özel bağlama oluşturma örneği için bkz . Nasıl yapılır: HTTPS ile Özel Güvenilir Oturum Bağlaması Oluşturma.

Güvenilir oturumları destekleyen WCF bağlamaları hakkında bir tartışma için bkz . Sistem Tarafından Sağlanan Bağlamalar.

Güvenilir oturumlar ne zaman kullanılır?

Uygulamanızda güvenilir oturumların ne zaman kullanılacağını anlamanız önemlidir. WCF, aynı anda etkin ve etkin olan uç noktalar arasında güvenilir oturumları destekler. Uygulamanız, uç noktalardan birinin bir süre kullanılamaz olmasını gerektiriyorsa güvenilirlik elde etmek için kuyrukları kullanın.

Senaryo TCP üzerinden bağlı iki uç nokta gerektiriyorsa, TCP güvenilir ileti alışverişleri sağlamak için yeterli olabilir. Ancak, TCP paketlerin sırayla ve yalnızca bir kez gelmesini sağladığından, güvenilir bir oturum kullanmak gerekli değildir.

Senaryonuz aşağıdaki özelliklerden herhangi birine sahipse, güvenilir bir oturum kullanmayı ciddi şekilde göz önünde bulundurmanız gerekir.

  • SOAP yönlendiricileri gibi SOAP aracıları

  • Ara sunucu ara sunucuları veya taşıma köprüleri

  • Aralıklı bağlantı kesintisi

  • HTTP üzerinden oturumlar

Ayrıca bkz.