Udostępnij przez


Powiązanie ciągu

Powiązanie ciągu jest niepodpisanym ciągiem znaków składającym się z ciągów reprezentujących identyfikator UUID obiektu powiązania, sekwencję protokołu RPC, adres sieciowy oraz opcje punktu końcowego i punktu końcowego.

ObjectUUID@ProtocolSequence:NetworkAddress[Endpoint,Option]

Parametry

ObjectUID

identyfikator UUID obiektu obsługiwanego przez zdalne wywołanie procedury. Na serwerze biblioteka czasu wykonywania RPC mapuje typ obiektu na wektor wejścia menedżera (tablica wskaźników funkcji) w celu wywołania prawidłowej procedury menedżera. Aby zapoznać się z omówieniem sposobu mapowania identyfikatorów UUID obiektów na wektory punktów wejścia menedżera, zobacz Registering Interfaces.

ProtocolSequence

Ciąg znaków reprezentujący prawidłową kombinację protokołu RPC (np. ncacn), protokołu transportowego (takiego jak TCP) i protokołu sieciowego (takiego jak IP). Program Microsoft RPC obsługuje następujące protokoły określone w Stałe sekwencji protokołów.

NetworkAddress

Adres sieciowy systemu do odbierania zdalnych wywołań procedur.

Nuta

Następujące sekwencje protokołów nie są obsługiwane w systemie Windows XP:

Format i zawartość adresu sieciowego zależą od określonej sekwencji protokołu w następujący sposób.

Sekwencja protokołów Adres sieciowy Przykłady
ncacn_nb_tcp Nazwa komputera myserver
ncacn_nb_ipx Nazwa komputera myserver
ncacn_nb_nb Nazwa komputera myserver
ncacn_ip_tcp Adres internetowy z czterema oktetami lub nazwa hosta. Jeśli zainstalowano stos sieciowy IPv6, protokół IPv6 jest w pełni obsługiwany i akceptowany jest również adres IPv6. 128.10.2.30 anynode.microsoft.com
ncacn_np Nazwa serwera (wiodące ukośniki odwrotne są opcjonalne) myserver \\myotherserver
ncacn_spx Adres internetowy IPX lub nazwa serwera ~0000000108002B30612C myserver
ncacn_dnet_nsp Składnia obszaru i węzła 4.120
ncacn_at_dsp Nazwa komputera, opcjonalnie, a następnie @ i nazwa strefy AppleTalk. Wartość domyślna to @*, strefa klienta, jeśli nie podano żadnej strefy nazwa serwera servername@zonename
ncacn_vns_spp Nazwa serwera StreetTalk formularza item@group@organization printserver@sdkdocs@microsoft
ncadg_mq Nazwa serwera myserver
ncacn_http Adres internetowy (nazwa czterech oktetów lub przyjazna nazwa albo nazwa serwera lokalnego 128.10.2.30 somesvr@anywhere.com mylocalsvr
ncadg_ip_udp Adres internetowy z czterema oktetami lub nazwa hosta 128.10.2.30 anynode.microsoft.com
ncadg_ipx Adres internetowy IPX lub nazwa serwera ~0000000108002B30612C myserver
ncalrpc Nazwa maszyny thismachine

Pole adres-sieć jest opcjonalne. Jeśli nie określisz adresu sieciowego, powiązanie ciągu odwołuje się do hosta lokalnego. Istnieje możliwość określenia nazwy komputera lokalnego podczas korzystania z ncalrpc sekwencji protokołu, jednak jest to całkowicie niepotrzebne.

punktu końcowego

Punkt końcowy lub adres procesu odbierania zdalnych wywołań procedur. Punkt końcowy może być poprzedzony słowem kluczowym endpoint=. Określenie punktu końcowego jest opcjonalne, jeśli serwer zarejestrował powiązania z maperem punktu końcowego. Zobacz RpcEpRegister.

Format i zawartość punktu końcowego zależą od określonej sekwencji protokołu, jak pokazano w poniższej tabeli punktów końcowych/opcji.

opcja

Opcje specyficzne dla protokołu. Pole opcji nie jest wymagane. Każda opcja jest określana przez parę {name, value}, która używa składni nazwa opcji=wartość opcji. Opcje są definiowane dla każdej sekwencji protokołów, jak pokazano w poniższej tabeli Punkt końcowy/Opcja.

Sekwencja protokołów Punkt końcowy Przykłady Nazwa opcji
ncacn_nb_tcp Liczba całkowita z zakresu od 1 do 254. Wiele wartości z zakresu od 0 do 32 jest zarezerwowanych przez firmę Microsoft. 100 Żaden
ncacn_nb_ipx (jak powyżej) (jak powyżej) Żaden
ncacn_nb_nb (jak powyżej) (jak powyżej) Żaden
ncacn_ip_tcp Numer portu internetowego. 1025 Żaden
ncacn_np Nazwany potok. Nazwa musi zaczynać się od "\\pipe". \\pipe\\pipename Bezpieczeństwo
ncacn_spx Liczba całkowita z zakresu od 1 do 65535. 5000 Żaden
ncacn_dnet_nsp Numer obiektu fazy IV deCnet (musi być poprzedzony znakiem #) lub nazwa obiektu. mailserver #17 Żaden
ncacn_at_dsp Ciąg znaków o długości do 22 bajtów. myservicesendpoint Żaden
ncacn_vns_spp Numer portu vines SPP z zakresu od 250 do 511. 500 Żaden
ncadg_mq Liczba całkowita z zakresu od 1 do 65535. 5000 Żaden
ncacn_http Numer portu internetowego. 2215 Nazwy serwerów proxy HTTP i RPC, opcja HttpConnection
ncadg_ip_udp Numer portu internetowego. 1025 Żaden
ncadg_ipx Liczba całkowita z zakresu od 1 do 65535. 5000 Żaden
ncalrpc Ciąg określający nazwę aplikacji lub usługi. Ciąg nie może zawierać żadnych znaków ukośnika odwrotnego. my_printer Bezpieczeństwo

Nazwa opcji HttpConnectionOption obsługiwana dla sekwencji protokołu ncacn_http przyjmuje następującą wartość.

Nazwa opcji Wartość
HttpConnectOption UseHttpProxy

HttpConnectionOption umożliwia kierowanie zachowania RPC podczas nawiązywania połączeń HTTP. Wartość UseHttpProxy nakazuje RPC kierowanie ruchu przez serwer proxy HTTP przez cały czas, w tym wtedy, gdy klient ma opcje internetowe ustawione w programie Internet Explorer, aby pominąć serwer proxy dla adresów lokalnych. Ta opcja przekierowuje klienta do wymuszania połączenia z serwerem proxy RPC za pośrednictwem serwera proxy Http. Przyspiesza to czas nawiązywania połączenia, ponieważ pomija wszelkie opóźnienia wyszukiwania serwera RPC bezpośrednio przed użyciem serwera proxy HTTP.

Jeśli ta opcja httpConnectionOption jest używana, a program Internet Explorer na kliencie nie jest skonfigurowany do używania tego serwera proxy Http, połączenia mogą zakończyć się niepowodzeniem z RPC_S_INVALID_NETWORK_OPTIONS.

HttpConnectOption=UseHttpProxy

Aby uzyskać więcej informacji na temat HttpConnectionOption, zobacz Using HTTP as an RPC Transport( Using HTTP as an RPC Transport).

Nazwa opcji zabezpieczeń obsługiwana dla sekwencji protokołów ncalrpc, ncacn_np, ncadg_ip_udp i ncadg_ipx przyjmuje następujące wartości opcji.

Nazwa opcji Wartość opcji
Security {identyfikacja | anonimowa | personifikacja} {dynamic | static} {true | false}

Jeśli określono nazwę opcji zabezpieczeń, należy również podać jeden wpis z każdego zestawu wartości opcji zabezpieczeń. Wartości opcji muszą być oddzielone znakiem pojedynczego odstępu. Na przykład następujące pola opcji są prawidłowe:

Security=identification dynamic true
Security=impersonation static true

Wartości opcji zabezpieczeń mają następujące znaczenie.

Wartość opcji zabezpieczeń Opis
Anonimowy Klient jest anonimowy dla serwera.
Dynamiczny Zmiany tożsamości zabezpieczeń klienta są widoczne przez serwer, gdy serwer korzysta z zabezpieczeń transportu. Jest to domyślny tryb zabezpieczeń na poziomie transportu LRPC (ncalrpc) oraz dla zabezpieczeń na poziomie transportu lokalnego nazwanego potoku (ncacn_np).
false Effective = FALSE; wszystkie ustawienia uprawnień tokenu, w tym ustawienia wyłączone, są uwzględniane w tokenie na serwerze i mogą być włączone przez serwer. Uprawnienia są istotne tylko dla wywołań RPC tej samej maszyny.
identyfikacji Serwer zawiera informacje o kliencie, ale nie może personifikować.
personifikacji Serwer może działać w imieniu klienta w systemie lokalnym (zabezpieczenia na poziomie transportu nie obsługują delegowania).
statyczne Zmiany tożsamości zabezpieczeń klienta nie są widoczne przez serwer, gdy serwer korzysta z zabezpieczeń transportu. Jest to jedyny tryb dostępny dla zdalnego nazwanego potoku (ncacn_np) zabezpieczeń na poziomie transportu. Tożsamość obiektu wywołującego jest zapisywana podczas pierwszego zdalnego wywołania procedury dla tego uchwytu powiązania, a nie w momencie tworzenia uchwytu powiązania.
true Effective = TRUE; Tylko ustawienia uprawnień tokenu ustawione na WŁ. są uwzględniane w tokenie na serwerze. Jeśli ta opcja jest używana, uprawnienia ustawione na wartość OFF nie mogą być włączone przez serwer. Uprawnienia są istotne tylko dla wywołań RPC tej samej maszyny.

Aby uzyskać więcej informacji na temat opcji zabezpieczeń, Security.

Uwagi

Białe znaki nie są dozwolone w powiązaniach ciągów, z wyjątkiem przypadków, gdy jest to wymagane przez składnię opcji. Ustawienia domyślne pól NetworkAddress, Endpointi Option pola różnią się w zależności od wartości elementu członkowskiego ProtocolSequence.

Dla wszystkich pól powiązania ciągów pojedynczy znak ukośnika odwrotnego (\) jest interpretowany jako znak ucieczki. Aby określić pojedynczy znak ukośnika odwrotnego literału, należy podać dwa znaki ukośnika odwrotnego (\\).

Powiązanie ciągu zawiera reprezentację znaku dojścia powiązania i od czasu do czasu części uchwytu powiązania. Powiązania ciągów są wygodne do reprezentowania części uchwytu powiązania, ale nie można ich używać do wykonywania zdalnych wywołań procedur. Należy najpierw przekonwertować je na uchwyt powiązania, wywołując RpcBindingFromStringBinding.

Ponadto powiązanie ciągu nie zawiera wszystkich informacji z uchwytu powiązania. Na przykład informacje dotyczące uwierzytelniania skojarzone z uchwytem powiązania nie są tłumaczone na powiązanie ciągu zwrócone przez wywołanie RpcBindingToStringBindingBinding.

Podczas tworzenia aplikacji rozproszonej serwery mogą komunikować swoje informacje o powiązaniach klientom przy użyciu powiązań ciągów w celu ustanowienia relacji klient-serwer bez używania bazy danych map punktu końcowego lub bazy danych name-service. Aby ustanowić taką relację, użyj funkcji RpcBindingToStringBindingBinding, aby przekonwertować co najmniej jeden uchwyt powiązania z wektora obsługi powiązań na powiązanie ciągu i podać powiązanie ciągu z klientem.

Przykłady

Poniżej przedstawiono przykłady prawidłowych powiązań ciągów. W tych przykładach obj-uuid jest używany dla wygody do reprezentowania prawidłowego identyfikatora UUID w postaci ciągu. Zamiast pokazywać identyfikator UUID 308FB580-1EB2-11CA-923B-08002B1075A7, przykłady pokazują 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

używanie protokołu HTTP jako transportu RPC