Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows Communication Foundation (WCF) güvenliği, önceden tanımlanmış bağlamaların çoğunda bulunan üç ortak güvenlik moduna sahiptir: aktarım, ileti ve "ileti kimlik bilgileriyle aktarım." İki bağlamaya özgü ek iki mod vardır: üzerinde BasicHttpBindingbulunan "yalnızca aktarım-kimlik bilgisi" modu ve üzerinde NetMsmqBindingbulunan "Her İkisi" modu. Ancak, bu konu üç yaygın güvenlik moduna odaklanır: Transport, Messageve TransportWithMessageCredential.
Önceden tanımlanmış her bağlamanın bu modların tümünü desteklemediğini unutmayın. Bu konu, ve NetTcpBinding sınıfları ile WSHttpBinding modu ayarlar ve hem program aracılığıyla hem de yapılandırma aracılığıyla modun nasıl ayarlandığını gösterir.
Daha fazla bilgi için bkz. WCF güvenliği, bkz . Güvenliğe Genel Bakış, Hizmetleri Güvenli Hale Getirme ve Hizmetleri ve İstemcileri Güvenli Hale Getirme. Aktarım modu ve ileti hakkında daha fazla bilgi için bkz . Aktarım Güvenliği ve İleti Güvenliği.
Kodda güvenlik modunu ayarlamak için
Kullanmakta olduğunuz bağlama sınıfının bir örneğini oluşturun. Önceden tanımlanmış bağlamaların listesi için bkz . Sistem Tarafından Sağlanan Bağlamalar. Bu örnek sınıfının bir örneğini WSHttpBinding oluşturur.
Modeözelliği tarafından döndürülen nesnesininSecurityözelliğini ayarlayın.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Transport;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.TransportAlternatif olarak, aşağıdaki kodda gösterildiği gibi modu ileti olarak ayarlayın.
WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Message;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.MessageVeya modu, aşağıdaki kodda gösterildiği gibi ileti kimlik bilgileriyle taşınacak şekilde ayarlayın.
WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.TransportWithMessageCredential;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.TransportWithMessageCredentialModu, aşağıdaki kodda gösterildiği gibi bağlamanın oluşturucusunda da ayarlayabilirsiniz.
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);Dim b As New WSHttpBinding(SecurityMode.Message)
ClientCredentialType Özelliğini Ayarlama
Modun üç değerden birine ayarlanması özelliği nasıl ayarlayabileceğinizi ClientCredentialType belirler. Örneğin, sınıfını WSHttpBinding kullanarak modu olarak Transport ayarlamak, sınıfın ClientCredentialType HttpTransportSecurity özelliğini uygun bir değere ayarlamanız gerektiği anlamına gelir.
Aktarım modu için ClientCredentialType özelliğini ayarlamak için
Bağlamanın bir örneğini oluşturun.
ModeözelliğiniTransportolarak ayarlayın.ClientCredentialözelliğini uygun bir değere ayarlayın. Aşağıdaki kod özelliğini olarakWindowsayarlar.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Transport; b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.Transport b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows
İleti modu için ClientCredentialType özelliğini ayarlamak için
Bağlamanın bir örneğini oluşturun.
ModeözelliğiniMessageolarak ayarlayın.ClientCredentialözelliğini uygun bir değere ayarlayın. Aşağıdaki kod özelliğini olarakCertificateayarlar.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Message; b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.Message b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate
Yapılandırmada Mode ve ClientCredentialType özelliğini ayarlamak için
Yapılandırma dosyasının <bağlamalar> öğesine uygun bir bağlama öğesi ekleyin. Aşağıdaki örnek bir <wsHttpBinding> öğesi ekler.
Bir
<binding>öğe ekleyin ve özniteliğininameuygun bir değere ayarlayın.Bir
<security>öğe ekleyin ve özniteliğinimode,TransportveyaTransportWithMessageCredentialolarakMessageayarlayın.Mod olarak ayarlanırsa
Transport, bir<transport>öğe ekleyin ve özniteliğiniclientCredentialuygun bir değere ayarlayın.Aşağıdaki örnek modu "
Transport"olarak ayarlar ve ardından öğesininclientCredentialType<transport>özniteliğini "Windows"olarak ayarlar.<wsHttpBinding> <binding name="TransportSecurity"> <security mode="Transport" > <transport clientCredentialType = "Windows" /> </security> </binding> </wsHttpBinding >Alternatif olarak, öğesini "
Message", ardından bir<"message">öğe olarak ayarlayınsecurity mode. Bu örnekte "Certificate"olarak ayarlanıyorclientCredentialType.<wsHttpBinding> <binding name="MessageSecurity"> <security mode="Message" > <message clientCredentialType = "Certificate" /> </security> </binding> </wsHttpBinding >değerinin TransportWithMessageCredential kullanılması özel bir durumdur ve aşağıda açıklanmıştır.
TransportWithMessageCredential kullanma
Güvenlik modunu olarak TransportWithMessageCredentialayarlarken aktarım, aktarım düzeyi güvenliği sağlayan gerçek mekanizmayı belirler. Örneğin, HTTP protokolü HTTP (HTTPS) üzerinden Güvenli Yuva Katmanı (SSL) kullanır. Bu nedenle, herhangi bir aktarım güvenlik nesnesinin (gibiHttpTransportSecurity) özelliğinin ayarlanması ClientCredentialType yoksayılır. Başka bir deyişle, yalnızca ileti güvenlik nesnesinin (bağlama için WSHttpBinding nesneNonDualMessageSecurityOverHttp) değerini ayarlayabilirsinizClientCredentialType.
Daha fazla bilgi için bkz . Nasıl yapılır: Aktarım Güvenliği ve İleti Kimlik Bilgilerini Kullanma.