<customBinding>
Memberikan kontrol penuh atas tumpukan pesan untuk pengguna.
<konfigurasi>
<system.serviceModel>
<mengikat>
<customBinding>
Sintaks
<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>
Atribut dan Elemen
Bagian berikut menjelaskan atribut, elemen anak, dan elemen induk
Atribut
Atribut | Deskripsi |
---|---|
closeTimeout | Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi tertutup. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00. |
nama | String yang berisi nama konfigurasi pengikatan. Nilai ini adalah string yang ditentukan pengguna yang bertindak sebagai string identifikasi untuk pengikatan kustom. Mulai dari .NET Framework 4, pengikatan dan perilaku tidak perlu memiliki nama. Untuk informasi selengkapnya tentang konfigurasi default dan pengikatan serta perilaku tanpa nama, lihat Konfigurasi yang Disederhanakan dan Konfigurasi yang Disederhanakan untuk Layanan WCF. |
openTimeout | Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi terbuka. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00. |
receiveTimeout | Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi penerimaan. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00. |
sendTimeout | Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi pengiriman. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00. |
Elemen Anak
Elemen | Deskripsi |
---|---|
<compositeDuplex> | Menentukan pesan dua arah ke pengikatan kustom. Ini digunakan dengan transportasi yang tidak mengizinkan komunikasi dupleks secara asli, misalnya, HTTP. TCP, sebaliknya, memungkinkan komunikasi dupleks secara asli, dan tidak memerlukan penggunaan elemen pengikat ini untuk layanan guna mengirim pesan kembali ke klien. Klien harus mengekspos alamat untuk layanan untuk melakukan kontak dan membuat koneksi. Alamat klien ini disediakan oleh atribut ClientBaseAddress .Elemen ini berjenis CompositeDuplexElement. |
<pnrpPeerResolver> | Menentukan penyelesai nama serekan dari Peer Name Resolution Protocol (PNRP). Elemen ini berjenis PnrpPeerResolverElement. |
<reliableSession> | Menentukan pengaturan untuk WS-Reliable Messaging. Saat elemen ini ditambahkan ke pengikatan kustom, saluran yang dihasilkan dapat mendukung jaminan pengiriman tepat satu kali. Elemen ini berjenis ReliableSessionElement. |
<keamanan> | Menentukan opsi untuk keamanan pengikatan kustom. Elemen ini berjenis SecurityElement. |
<sslStreamSecurity> | Menentukan pengaturan keamanan untuk pengikatan aliran SSL. Elemen ini berjenis SslStreamSecurityElement. |
<transactionFlow> | Menentukan bahwa pengikatan mendukung alur transaksi, dan protokol yang akan digunakan oleh atribut transactionProtocol . Elemen ini berjenis TransactionFlowElement. |
<windowsStreamSecurity> | Menentukan opsi untuk keamanan streaming dari pengikatan kustom. Elemen ini berjenis WindowsStreamSecurityElement. |
Elemen Induk
Elemen | Deskripsi |
---|---|
mengikat | Berisi semua pengikatan untuk aplikasi Windows Communication Foundation. |
Keterangan
Pengikatan kustom memberikan kontrol penuh atas tumpukan pesan WCF. Pengikatan kustom dapat dibuat dengan menambahkan elemen konfigurasi untuk entitas tertentu. Misalnya, pengguna dapat menggabungkan bagian httpsTransport
, bagian reliableSession
, dan bagian security
untuk membuat pengikatan berbasis https yang andal dan aman.
Pengikatan individu mendefinisikan tumpukan pesan dengan menentukan elemen konfigurasi untuk elemen tumpukan dalam urutan kemunculannya di tumpukan. Setiap elemen mendefinisikan dan mengonfigurasi satu elemen dari tumpukan. Harus ada satu dan hanya satu elemen transportasi di setiap pengikatan kustom. Tanpa elemen ini, tumpukan pesan tidak lengkap.
Urutan elemen yang muncul di tumpukan sangatlah penting, karena urutan operasi diterapkan pada pesan. Urutan elemen tumpukan yang disarankan adalah sebagai berikut:
Transaksi (opsional)
Olahpesan yang Andal (opsional)
Keamanan (opsional)
Transportasi
Encoder (opsional)
Gunakan pengikatan kustom jika salah satu pengikatan yang disediakan sistem tidak memenuhi persyaratan layanan Anda. Pengikatan kustom dapat digunakan, misalnya, untuk mengaktifkan penggunaan transportasi baru atau encoder baru di titik akhir layanan.
Pengikatan kustom dibuat menggunakan salah satu CustomBinding dari kumpulan elemen pengikatan yang "ditumpuk" dalam urutan tertentu:
Di bagian atas adalah TransactionFlowBindingElement opsional yang memungkinkan transaksi mengalir.
Berikutnya adalah ReliableSessionBindingElement opsional yang menyediakan sesi dan mekanisme pemesanan seperti yang ditentukan dalam spesifikasi WS-ReliableMessaging. Gagasan sesi ini dapat melintasi perantara SOAP dan transportasi.
Berikutnya adalah elemen pengikat keamanan opsional yang menyediakan fitur keamanan seperti otorisasi, autentikasi, perlindungan, dan kerahasiaan. Elemen pengikat keamanan berikut ini disediakan oleh Windows Communication Foundation (WCF):
Berikutnya adalah pola pesan opsional yang ditentukan oleh elemen pengikat:
Berikutnya adalah elemen pengikatan peningkatan/pembantu transportasi opsional:
Berikutnya adalah elemen pengikatan pengodean pesan yang diperlukan. Anda dapat menggunakan transportasi Anda sendiri atau menggunakan salah satu pengikatan pengodean pesan berikut:
Di bagian bawah adalah elemen transportasi yang diperlukan. Anda dapat menggunakan transportasi Anda sendiri atau menggunakan salah satu elemen pengikat transportasi yang disediakan oleh Windows Communication Foundation (WCF):
Tabel berikut merangkum opsi untuk setiap lapisan.
Lapisan | Opsi | Diperlukan |
---|---|---|
Alur Transaksi | TransactionFlowBindingElement | Tidak |
Keandalan | ReliableSessionBindingElement | Tidak |
Keamanan | Simetris, Asimetris, Tingkat Transportasi | Tidak |
Perubahan Bentuk | CompositeDuplexBindingElement | Tidak |
Peningkatan Transportasi | Aliran SSL, aliran Windows, Penyelesai Serekan | Tidak |
Pengodean | Teks, Biner, MTOM, Kustom | Ya |
Transportasi | TCP, Pipa yang Dinamai, HTTP, HTTPS, rasa MSMQ, Kustom | Ya |
Selain itu, Anda dapat menentukan elemen pengikat Anda sendiri dan menyisipkannya di antara salah satu lapisan yang ditentukan sebelumnya.
Untuk diskusi tentang cara menggunakan pengikatan kustom guna mengubah pengikatan yang disediakan sistem, lihat Cara: Menyesuaikan Pengikatan yang Disediakan Sistem.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk