Pengikatan String

Pengikatan string adalah string karakter yang tidak ditandatangani yang terdiri dari string yang mewakili UUID objek pengikatan, urutan protokol RPC, alamat jaringan, serta opsi titik akhir dan titik akhir.

ObjectUUID@ProtocolSequence:NetworkAddress[Endpoint,Option]

Parameter

ObjectUUID

UUID objek yang dioperasikan oleh panggilan prosedur jarak jauh. Di server, pustaka run-time RPC memetakan jenis objek ke vektor titik entri manajer (array penunjuk fungsi) untuk memanggil rutinitas manajer yang benar. Untuk diskusi tentang cara memetakan UUID objek ke vektor titik masuk manajer, lihat Mendaftarkan Antarmuka.

ProtocolSequence

String karakter yang mewakili kombinasi protokol RPC yang valid (seperti ncacn), protokol transportasi (seperti TCP), dan protokol jaringan (seperti IP). Microsoft RPC mendukung protokol berikut yang ditentukan dalam Konstanta Urutan Protokol.

NetworkAddress

Alamat jaringan sistem untuk menerima panggilan prosedur jarak jauh.

Catatan

Urutan protokol berikut ini tidak didukung pada Windows XP:

Format dan konten alamat jaringan bergantung pada urutan protokol yang ditentukan sebagai berikut.

Urutan protokol Alamat jaringan Contoh
ncacn_nb_tcp Nama komputer myserver
ncacn_nb_ipx Nama komputer myserver
ncacn_nb_nb Nama komputer myserver
ncacn_ip_tcp Alamat Internet empat oktet, atau nama host. Jika tumpukan jaringan IPv6 diinstal, IPv6 didukung penuh dan alamat IPv6 juga diterima. 128.10.2.30 anynode.microsoft.com
ncacn_np Nama server (garis miring terbelakang ganda di depan bersifat opsional) myserver \\myotherserver
ncacn_spx Alamat Internet IPX, atau nama server ~0000000108002B30612C myserver
ncacn_dnet_nsp Sintaks area dan simpul 4.120
ncacn_at_dsp Nama komputer, secara opsional diikuti oleh @ dan nama zona AppleTalk. Default ke @*, zona klien, jika tidak ada zona yang disediakan servername@zonename nama server
ncacn_vns_spp Nama server StreetTalk formulir item@group@organization printserver@sdkdocs@microsoft
ncadg_mq Nama server myserver
ncacn_http Alamat internet (empat oktet atau nama yang mudah diingat, atau nama server lokal 128.10.2.30 somesvr@anywhere.com mylocalsvr
ncadg_ip_udp Alamat Internet empat oktet, atau nama host 128.10.2.30 anynode.microsoft.com
ncadg_ipx Alamat Internet IPX, atau nama server ~0000000108002B30612C myserver
ncalrpc Nama komputer thismachine

Bidang alamat jaringan bersifat opsional. Ketika Anda tidak menentukan alamat jaringan, pengikatan string mengacu pada host lokal Anda. Dimungkinkan untuk menentukan nama komputer lokal ketika Anda menggunakan urutan protokol ncalrpc , namun melakukannya sama sekali tidak perlu.

Endpoint

Titik akhir, atau alamat, dari proses untuk menerima panggilan prosedur jarak jauh. Titik akhir dapat didahului oleh titik akhir kata kunci=. Menentukan titik akhir bersifat opsional jika server telah mendaftarkan pengikatannya dengan pemeta titik akhir. Lihat RpcEpRegister.

Format dan konten titik akhir bergantung pada urutan protokol yang ditentukan seperti yang ditunjukkan dalam Tabel Titik Akhir/Opsi berikut.

Pilihan

Opsi khusus protokol. Bidang opsi tidak diperlukan. Setiap opsi ditentukan oleh pasangan {name, value} yang menggunakannilai opsinama= opsi sintaksis. Opsi didefinisikan untuk setiap urutan protokol seperti yang ditunjukkan dalam tabel Titik Akhir/Opsi berikut.

Urutan protokol Titik akhir Contoh Nama opsi
ncacn_nb_tcp Bilangan bulat antara 1 dan 254. Banyak nilai antara 0 dan 32 dicadangkan oleh Microsoft. 100 Tidak ada
ncacn_nb_ipx (seperti di atas) (seperti di atas) Tidak ada
ncacn_nb_nb (seperti di atas) (seperti di atas) Tidak ada
ncacn_ip_tcp Nomor port internet. 1025 Tidak ada
ncacn_np Pipa bernama. Nama harus dimulai dengan "\\pipe". \\pipe\\pipename Keamanan
ncacn_spx Bilangan bulat antara 1 dan 65535. 5000 Tidak ada
ncacn_dnet_nsp Nomor objek DECnet fase IV (harus didahului oleh karakter # ), atau nama objek. mailserver #17 Tidak ada
ncacn_at_dsp String karakter, panjangnya hingga 22 byte. myservicesendpoint Tidak ada
ncacn_vns_spp Vines SPP port number antara 250 dan 511. 500 Tidak ada
ncadg_mq Bilangan bulat antara 1 dan 65535. 5000 Tidak ada
ncacn_http Nomor port internet. 2215 Nama server proksi HTTP dan RPC, opsi HttpConnection
ncadg_ip_udp Nomor port internet. 1025 Tidak ada
ncadg_ipx Bilangan bulat antara 1 dan 65535. 5000 Tidak ada
ncalrpc String yang menentukan nama aplikasi atau layanan. String tidak dapat menyertakan karakter garis miring terbelakang. my_printer Keamanan

Nama opsi HttpConnectionOption , didukung untuk urutan protokol ncacn_http, mengambil nilai berikut.

Nama opsi Nilai
HttpConnectOption GunakanHttpProxy

HttpConnectionOption memungkinkan Anda untuk mengarahkan perilaku RPC saat membuat koneksi HTTP. Nilai UseHttpProxy menginstruksikan RPC untuk merutekan lalu lintasnya melalui proksi Http setiap saat, termasuk ketika klien memiliki Opsi Internet yang diatur di Internet Explorer untuk Melewati server proksi untuk alamat lokal. Opsi ini mengarahkan klien untuk terhubung secara paksa ke proksi RPC melalui proksi Http. Ini mempercepat waktu untuk membuat koneksi karena melewati penundaan pencarian server RPC secara langsung sebelum menggunakan proksi HTTP.

Jika opsi HttpConnectionOption ini digunakan dan Internet Explorer pada klien tidak dikonfigurasi untuk menggunakan proksi Http tersebut, koneksi mungkin gagal dengan RPC_S_INVALID_NETWORK_OPTIONS.

HttpConnectOption=UseHttpProxy

Untuk informasi selengkapnya tentang HttpConnectionOption, lihat Menggunakan HTTP sebagai Transportasi RPC.

Nama opsi Keamanan , didukung untuk urutan protokol ncalrpc, ncacn_np, ncadg_ip_udp, dan ncadg_ipx, mengambil nilai opsi berikut.

Nama opsi Nilai opsi
Keamanan {identifikasi | anonim | peniruan} {dinamis | statis} {true | false}

Jika nama opsi keamanan ditentukan, satu entri dari setiap set nilai opsi keamanan juga harus disediakan. Nilai opsi harus dipisahkan oleh karakter spasi tunggal. Misalnya, bidang Opsi berikut ini valid:

Security=identification dynamic true
Security=impersonation static true

Nilai opsi keamanan memiliki arti berikut.

Nilai opsi keamanan Deskripsi
Anonim Klien bersifat anonim dengan server.
Dinamis Perubahan identitas keamanan klien terlihat oleh server saat server menggunakan keamanan transportasi. Ini adalah mode default untuk keamanan tingkat transportasi LRPC (ncalrpc), dan untuk keamanan tingkat transportasi pipa bernama lokal (ncacn_np).
False Efektif = FALSE; semua pengaturan hak istimewa token, termasuk yang diatur ke NONAKTIF, disertakan dalam token di server dan dapat diaktifkan oleh server. Hak istimewa hanya relevan untuk panggilan RPC komputer yang sama.
Identifikasi Server memiliki informasi tentang klien tetapi tidak dapat meniru.
Penyamaran Server dapat bertindak atas nama klien dalam sistem lokal (keamanan tingkat transportasi tidak mendukung delegasi).
Statis Perubahan identitas keamanan klien tidak terlihat oleh server ketika server menggunakan keamanan transportasi. Ini adalah satu-satunya mode yang tersedia untuk keamanan tingkat transportasi pipa bernama jarak jauh (ncacn_np). Identitas pemanggil disimpan selama panggilan prosedur jarak jauh pertama pada handel pengikatan tersebut, bukan pada saat handel pengikatan dibuat.
True Efektif = TRUE; hanya pengaturan hak istimewa token yang diatur ke AKTIF yang disertakan dalam token di server. Hak istimewa yang diatur ke NONAKTIF tidak dapat diaktifkan oleh server jika opsi ini digunakan. Hak istimewa hanya relevan untuk panggilan RPC komputer yang sama.

Untuk informasi selengkapnya tentang opsi keamanan, Keamanan.

Keterangan

Spasi kosong tidak diperbolehkan dalam pengikatan string kecuali jika diperlukan oleh sintaks Opsi . Pengaturan default untuk bidang NetworkAddress, Endpoint, dan Option bervariasi sesuai dengan nilai anggota ProtocolSequence .

Untuk semua bidang pengikatan string, satu karakter garis miring terbalik (\) ditafsirkan sebagai karakter escape. Untuk menentukan satu karakter garis miring terbelakang literal, Anda harus menyediakan dua karakter garis miring terbelakang (\\).

Pengikatan string berisi representasi karakter dari handel pengikatan dan terkadang bagian dari handel pengikatan. Pengikatan string nyaman untuk mewakili bagian dari handel pengikatan, tetapi tidak dapat digunakan untuk melakukan panggilan prosedur jarak jauh. Mereka harus terlebih dahulu dikonversi ke handel pengikatan dengan memanggil RpcBindingFromStringBinding.

Selain itu, pengikatan string tidak berisi semua informasi dari handel pengikatan. Misalnya, informasi autentikasi, jika ada, yang terkait dengan handel pengikatan tidak diterjemahkan ke dalam pengikatan string yang dikembalikan dengan memanggil RpcBindingToStringBinding.

Selama pengembangan aplikasi terdistribusi, server dapat mengomunikasikan informasi pengikatan mereka kepada klien menggunakan pengikatan string untuk membangun hubungan server klien tanpa menggunakan database peta titik akhir atau database layanan nama. Untuk membangun hubungan seperti itu, gunakan fungsi RpcBindingToStringBinding untuk mengonversi satu atau beberapa handel pengikatan dari vektor handel pengikatan ke pengikatan string, dan berikan pengikatan string ke klien.

Contoh

Berikut ini adalah contoh pengikatan string yang valid. Dalam contoh ini, obj-uuid digunakan untuk kenyamanan untuk mewakili UUID yang valid dalam bentuk string. Alih-alih menunjukkan UUID 308FB580-1EB2-11CA-923B-08002B1075A7, contoh menunjukkan obj-uuid.

obj-uuid@ncadg_mq:mymqserver
obj-uuid@ncacn_http:major7.microsoft.com[2225]
obj_uuid@ncacn_http:major7.microsoft.com[,HttpProxy=proxysvr:80,
    RpcProxy=websvr1.microsoft.com:80]
obj_uuid@ncacn_http:major7.microsoft.com[,HttpProxy=proxysvr:80,
    RpcProxy=websvr1.microsoft.com:80,HttpConnectOption=UseHttpProxy]
obj-uuid@ncacn_ip_tcp:16.20.16.27[2001]
obj-uuid@ncacn_ip_tcp:16.20.16.27[endpoint=2001]
obj-uuid@ncacn_nb_nb:
obj-uuid@ncacn_nb_nb:[100]
obj-uuid@ncacn_np:
obj-uuid@ncacn_np:[\\pipe\\p3,Security=impersonation static true]
obj-uuid@ncacn_np:\\\\marketing[\\pipe\\p2\\p3\\p4]
obj-uuid@ncacn_np:\\\\marketing[endpoint=\\pipe\\p2\\p3\\p4]
obj-uuid@ncacn_np:\\\\sales
obj-uuid@ncacn_np:\\\\sales[\\pipe\\p1,Security=identification dynamic true]
obj-uuid@ncalrpc:
obj-uuid@ncalrpc:[object1_name_demonstrating_that_these_can_be_lengthy]
obj-uuid@ncalrpc:[object2_name,Security=anonymous static true]
obj-uuid@ncacn_vns_spp:server@group@org[500]
obj-uuid@ncacn_dnet_nsp:took[elf_server]
obj-uuid@ncacn_dnet_nsp:took[endpoint=elf_server]
obj-uuid@ncadg_ip_udp:128.10.2.30
obj-uuid@ncadg_ip_udp:maryos.microsoft.com[1025]
obj-uuid@ncadg_ipx: ~0000000108002B30612C[5000]
obj-uuid@ncadg_ipx:printserver
obj-uuid@ncacn_spx:annaw[4390]
obj-uuid@ncacn_spx:~0000000108002B30612C

RpcBindingFromStringBinding

RpcBindingToStringBinding

RpcEpRegister

Menggunakan HTTP sebagai Transportasi RPC