<Custombinding>
Kullanıcı için mesajlaşma yığını üzerinde tam denetim sağlar.
<Yapılandırma>
<system.serviceModel>
<Bağlama>
<Custombinding>
Syntax
<customBinding>
<binding name="String"
closeTimeout="TimeSpan"
openTimeout="TimeSpan"
receiveTimeout="TimeSpan"
sendTimeout="TimeSpan">
<compositeDuplex clientBaseAddress="Uri" />
<reliableSession acknowledgementInterval="TimeSpan"
advancedFlowControl="Boolean"
bufferedMessagesQuota="Integer"
inactivityTimeout="TimeSpan"
maxPendingChannels="Integer"
maxRetryCount="Integer"
ordered="Boolean" />
<pnrpPeerResolver />
<windowsStreamSecurity protectionLevel="None/Sign/EncryptAndSign" />
<sslStreamSecurity requireClientCertificate="Boolean" />
<transactionFlow transactionProtocol="OleTransactions/WSAtomicTransactionOctober2004" />
<security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
authenticationMode="UserNameForAnonymous"
contextMode="Cookie"
defaultProtectionLevel="Sign"
enableKeyDerivation="false"
keyEntropyMode="ClientEntropy"
messageProtectionOrder="SignBeforeEncryptAndEncryptSignature"
securityVersion="WSSecurityXXX2005">
<localClientSettings cacheCookies="false"
detectReplays="false"
maxCookieCachingTime="00:07:24" />
<localServiceSettings replayCacheSize="9"
maxClockSkew="00:00:03"
replayWindow="00:07:22.2190000" />
</security>
<binaryMessageEncoding maxReadPoolSize="Integer"
maxWritePoolSize="Integer"
maxSessionSize="Integer" />
<httpsTransport manualAddressing="Boolean"
maxMessageSize="Integer"
authenticationScheme="Negotiate"
bypassProxyOnLocal="Boolean"
hostNameComparisonMode="Exact"
mapAddressingHeadersToHttpHeaders="Boolean"
proxyaddress="Uri"
realm="String"
requireClientCertificate="Boolean" />
<peerTransport manualAddressing="false"
maxMessageSize="20002"
listenIPAddress="202.10.1.9"
messageAuthentication="false"
peerNodeAuthenticationMode="None"
port="1000" />
<security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
authenticationMode="UserNameForAnonymous"
bootstrapBindingConfiguration="String"
bootstrapBindingSectionName="String"
defaultProtectionLevel="None/Sign/EncryptAndSign"
requireDerivedKeys="Boolean"
securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
includeTimestamp="Boolean"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
protectTokens="Boolean"
requireSecurityContextCancellation="Boolean"
securityVersion=" WSSecurityJan2004/WSSecurityXXX2005"
requireSignatureConfirmation="Boolean">
<localClientSettings cacheCookies="Boolean"
detectReplays="Boolean"
replayCacheSize="Integer"
maxClockSkew="TimeSpan"
maxCookieCachingTime="TimeSpan"
replayWindow="TimeSpan"
sessionKeyRenewalInterval="TimeSpan"
sessionKeyRolloverInterval="TimeSpan"
reconnectOnTransportFailure="Boolean"
timestampValidityDuration="TimeSpan"
cookieRenewalThresholdPercentage="Integer" />
<localServiceSettings detectReplays="Boolean"
issuedCookieLifeTime="TimeSpan"
maxStatefulNegotiations="Integer"
replayCacheSize="Integer"
maxClockSkew="TimeSpan"
negotiationTimeout="TimeSpan"
replayWindow="TimeSpan"
inactivityTimeout="TimeSpan"
sessionKeyRenewalInterval="TimeSpan"
sessionKeyRolloverInterval="TimeSpan"
reconnectOnTransportFailure="Boolean"
maxConcurrentSessions="Integer"
timestampValidityDuration="TimeSpan" />
<federationParameters trustVersion="WSTrustApr2004/WSTrustFeb2005" />
</security>
<security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
authenticationMode="UserNameForAnonymous"
bootstrapBindingConfiguration="String"
bootstrapBindingSectionName="String"
defaultProtectionLevel="None/Sign/EncryptAndSign"
requireDerivedKeys="Boolean"
securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
includeTimestamp="Boolean"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
protectTokens="Boolean"
requireSecurityContextCancellation="Boolean"
securityVersion=" WSSecurityJan2004/WSSecurityXXX2005"
requireSignatureConfirmation="Boolean" >
<localClientSettings cacheCookies="Boolean"
detectReplays="Boolean"
replayCacheSize="Integer"
maxClockSkew="TimeSpan"
maxCookieCachingTime="TimeSpan"
replayWindow="TimeSpan"
sessionKeyRenewalInterval="TimeSpan"
sessionKeyRolloverInterval="TimeSpan"
reconnectOnTransportFailure="Boolean"
timestampValidityDuration="TimeSpan"
cookieRenewalThresholdPercentage="Integer" />
<localServiceSettings detectReplays="Boolean"
issuedCookieLifeTime="TimeSpan"
maxStatefulNegotiations="Integer"
replayCacheSize="Integer"
maxClockSkew="TimeSpan"
negotiationTimeout="TimeSpan"
replayWindow="TimeSpan"
inactivityTimeout="TimeSpan"
sessionKeyRenewalInterval="TimeSpan"
sessionKeyRolloverInterval="TimeSpan"
reconnectOnTransportFailure="Boolean"
maxConcurrentSessions="Integer"
timestampValidityDuration="TimeSpan" />
<federationParameters trustVersion="WSTrustApr2004/WSTrustFeb2005" />
<genericIssuedTokenParameters>
<localIssuerIssuedTokenParameters keyType="SymmetricKey/PublicKey"
keySize="Integer"
tokenType="String" />
<issuedTokenParametersEndpointAddress address="URI"
bindingConfiguration="String"
binding="String" />
<issuedTokenClient localIssuerChannelBehaviors="String"
cacheIssuedTokens="Boolean"
maxIssuedTokenCachingTime="TimeSpan"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy" />
<issuedTokenClientBehavior issuerAddress="String"
behaviorConfiguration="String" />
<issuedTokenClientBehavior address="URI"
bindingConfiguration="String"
binding="String" />
</genericIssuedTokenParameters>
</security>
</binding>
</customBinding>
Öznitelikler ve Öğeler
Aşağıdaki bölümlerde öznitelikler, alt öğeler ve üst öğeler açıklanmaktadır
Öznitelikler
Öznitelik | Açıklama |
---|---|
closeTimeout | Kapatma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır. |
name | Bağlamanın yapılandırma adını içeren bir dize. Bu değer, özel bağlama için tanımlama dizesi işlevi gören kullanıcı tanımlı bir dizedir. .NET Framework 4'den başlayarak, bağlamaların ve davranışların bir ada sahip olması gerekmez. Varsayılan yapılandırma ve adsız bağlamalar ve davranışlar hakkında daha fazla bilgi için bkz. WCF Hizmetleri için Basitleştirilmiş Yapılandırma ve Basitleştirilmiş Yapılandırma. |
openTimeout | Açma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır. |
receiveTimeout | Alma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır. |
sendTimeout | Gönderme TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır. |
Alt Öğeler
Öğe | Açıklama |
---|---|
<compositeDuplex> | Özel bağlamaya yönelik iki yönlü mesajlaşmayı belirtir. Çift yönlü iletişimlere yerel olarak izin verilmeyen aktarımlarla (örneğin, HTTP) kullanılır. TCP ise çift yönlü iletişimlere yerel olarak izin verir ve hizmetin bir istemciye ileti göndermesi için bu bağlama öğesinin kullanılmasını gerektirmez. İstemcinin iletişim kurmak ve bağlantı kurmak için hizmetin adresini kullanıma sunması gerekir. Bu istemci adresi özniteliği tarafından ClientBaseAddress sağlanır.Bu öğe türündedir CompositeDuplexElement. |
<pnrpPeerResolver> | Eş Adı Çözümleme Protokolü (PNRP) eş adı çözümleyicisini belirtir. Bu öğe türündedir PnrpPeerResolverElement. |
<reliableSession> | WS-Reliable Mesajlaşma ayarını belirtir. Bu öğe özel bağlamaya eklendiğinde, sonuçta elde edilen kanal tam olarak bir kez teslim güvencelerini destekleyebilir. Bu öğe türündedir ReliableSessionElement. |
<Güvenlik> | Özel bağlamanın güvenliği için seçenekleri belirtir. Bu öğe türündedir SecurityElement. |
<sslStreamSecurity> | SSL akış bağlamasının güvenlik ayarlarını belirtir. Bu öğe türündedir SslStreamSecurityElement. |
<transactionFlow> | Bağlamanın işlem akışını ve özniteliği tarafından kullanılacak protokolü desteklediğini transactionProtocol belirtir. Bu öğe türündedir TransactionFlowElement. |
<windowsStreamSecurity> | Özel bağlamanın akış güvenliği seçeneklerini belirtir. Bu öğe türündedir WindowsStreamSecurityElement. |
Üst Öğeler
Öğe | Açıklama |
---|---|
bağlamalar | Windows Communication Foundation uygulamaları için tüm bağlamaları içerir. |
Açıklamalar
Özel bağlamalar WCF mesajlaşma yığını üzerinde tam denetim sağlar. Özel olarak uyarlanmış bağlamalar, belirli varlıklar için yapılandırma öğelerini eklemem için oluşturulabilir. Örneğin, kullanıcı güvenilir ve güvenli bir https tabanlı bağlama oluşturmak için bölümü, reliableSession
bölümü ve security
bölümü birleştirebilirhttpsTransport
.
Tek bir bağlama, yığın öğelerinin yapılandırma öğelerini yığında göründükleri sırayla belirterek ileti yığınını tanımlar. Her öğe, yığının bir öğesini tanımlar ve yapılandırılır. Her özel bağlamada bir ve yalnızca bir taşıma öğesi olmalıdır. Bu öğe olmadan mesajlaşma yığını tamamlanmamıştır.
öğelerin yığında görünme sırası önemlidir, çünkü bu, işlemlerin iletiye uygulanma sırasıdır. Yığın öğelerinin önerilen sırası şunlardır:
İşlemler (isteğe bağlı)
Reliable Messaging (isteğe bağlı)
Güvenlik (isteğe bağlı)
Aktarım
Kodlayıcı (isteğe bağlı)
Sistem tarafından sağlanan bağlamalardan biri hizmetinizin gereksinimlerini karşılamadığında özel bağlama kullanın. Örneğin, bir hizmet uç noktasında yeni bir aktarım veya yeni bir kodlayıcı kullanımını etkinleştirmek için özel bir bağlama kullanılabilir.
Özel bağlama, belirli bir sırada "yığılmış" bağlama öğeleri koleksiyonundan biri CustomBinding kullanılarak oluşturulur:
En üstte, akışlı işlemlere izin veren isteğe bağlı TransactionFlowBindingElement bir seçenek bulunur.
Sonraki, WS-ReliableMessaging belirtiminde tanımlandığı gibi bir oturum ve sıralama mekanizması sağlayan isteğe bağlı ReliableSessionBindingElement bir özelliktir. Oturumun bu ifadesi SOAP ve aktarım aracıları arasında geçiş yapabilir.
Sonraki, yetkilendirme, kimlik doğrulaması, koruma ve gizlilik gibi güvenlik özellikleri sağlayan isteğe bağlı bir güvenlik bağlama öğesidir. Aşağıdaki güvenlik bağlama öğeleri Windows Communication Foundation (WCF) tarafından sağlanır:
Ardından bağlama öğeleri tarafından belirtilen isteğe bağlı ileti desenleri bulunur:
Ardından isteğe bağlı aktarım yükseltmeleri/yardımcıları bağlama öğeleri şunlardır:
Sonraki, gerekli bir ileti kodlama bağlama öğesidir. Kendi aktarımınızı veya aşağıdaki ileti kodlama bağlamalarından birini kullanabilirsiniz:
Alt kısımda gerekli bir taşıma elemanı bulunur. Kendi taşımanızı kullanabilir veya Windows Communication Foundation (WCF) tarafından sağlanan aktarım bağlama öğelerinden birini kullanabilirsiniz:
Aşağıdaki tabloda her katman için seçenekler özetlenmiştir.
Katman | Seçenekler | Gerekli |
---|---|---|
İşlem Akışı | TransactionFlowBindingElement | Hayır |
Güvenilirlik | ReliableSessionBindingElement | Hayır |
Güvenlik | Simetrik, Asimetrik, Transport-Level | Hayır |
Şekil Değişikliği | CompositeDuplexBindingElement | Hayır |
Taşıma Yükseltmeleri | SSL akışı, Windows akışı, Eş Çözümleyici | Hayır |
Encoding | Metin, İkili, MTOM, Özel | Yes |
Aktarım | TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ türleri, Özel | Yes |
Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tanımlı katmanlardan herhangi birinin arasına ekleyebilirsiniz.
Sistem tarafından sağlanan bağlamayı değiştirmek için özel bağlama kullanma hakkında bir tartışma için bkz . Nasıl yapılır: System-Provided Bağlamasını Özelleştirme.