Freigeben über


Zeichenfolgenbindung

Die Zeichenfolgenbindung ist eine nicht signierte Zeichenfolge, die aus Zeichenfolgen besteht, die die Bindungsobjekt-UUID, die RPC-Protokollsequenz, die Netzwerkadresse und die Endpunkt- und Endpunktoptionen darstellen.

ObjectUUID@ProtocolSequence:NetworkAddress[Endpoint,Option]

Parameter

ObjectUUID-

UUID- des Objekts, das vom Remoteprozeduraufruf betrieben wird. Auf dem Server ordnet die RPC-Laufzeitbibliothek den Objekttyp einem Manager-Einstiegspunktvektor (einem Array von Funktionszeigern) zu, um die richtige Managerroutine aufzurufen. Eine Erläuterung zum Zuordnen von Objekt-UUIDs zu Manager-Einstiegspunktvektoren finden Sie unter Registrieren von Schnittstellen.

ProtocolSequence-

Zeichenzeichenfolge, die eine gültige Kombination aus einem RPC-Protokoll (z. B. ncacn), einem Transportprotokoll (z. B. TCP) und einem Netzwerkprotokoll (z. B. IP) darstellt. Microsoft RPC unterstützt die folgenden Protokolle, die in Protokollsequenzkonstantenangegeben sind.

NetworkAddress-

Netzwerkadresse des Systems zum Empfangen von Remoteprozeduraufrufen.

Anmerkung

Die folgenden Protokollsequenzen werden ab Windows XP nicht unterstützt:

Das Format und der Inhalt der Netzwerkadresse hängen von der angegebenen Protokollsequenz wie folgt ab.

Protokollsequenz Netzwerkadresse Beispiele
ncacn_nb_tcp Computername myserver
ncacn_nb_ipx Computername myserver
ncacn_nb_nb Computername myserver
ncacn_ip_tcp Internetadresse mit vier Oktett oder Hostnamen. Wenn der IPv6-Netzwerkstapel installiert ist, wird IPv6 vollständig unterstützt und eine IPv6-Adresse wird ebenfalls akzeptiert. 128.10.2.30 anynode.microsoft.com
ncacn_np Servername (führende doppelseitige Schrägstriche sind optional) myserver \\myotherserver
ncacn_spx IPX-Internetadresse oder Servername ~00000000108002B30612C myserver
ncacn_dnet_nsp Bereichs- und Knotensyntax 4.120
ncacn_at_dsp Computername, optional gefolgt von @ und dem AppleTalk-Zonennamen. Standardmäßig wird @*, die Zone des Clients, sofern keine Zone angegeben, festgelegt. servername@zonename Servername
ncacn_vns_spp StreetTalk-Servername des Formulars item@group@organization printserver@sdkdocs@microsoft
ncadg_mq Servername myserver
ncacn_http Internetadresse (entweder Vier-Oktett- oder Anzeigename oder lokaler Servername 128.10.2.30 somesvr@anywhere.com mylocalsvr
ncadg_ip_udp Internetadresse mit vier Oktett oder Hostname 128.10.2.30 anynode.microsoft.com
ncadg_ipx IPX-Internetadresse oder Servername ~00000000108002B30612C myserver
ncalrpc Computername thismachine

Das Netzwerkadressenfeld ist optional. Wenn Sie keine Netzwerkadresse angeben, bezieht sich die Zeichenfolgenbindung auf Ihren lokalen Host. Es ist möglich, den Namen des lokalen Computers anzugeben, wenn Sie die ncalrpc Protokollsequenz verwenden, dies ist jedoch völlig unnötig.

Endpoint

Endpunkt oder Adresse des Prozesses zum Empfangen von Remoteprozeduraufrufen. Einem Endpunkt kann das Schlüsselwort endpoint=vorangestellt werden. Die Angabe des Endpunkts ist optional, wenn der Server seine Bindungen mit der Endpunktzuordnung registriert hat. Siehe RpcEpRegister-.

Das Format und der Inhalt eines Endpunkts hängen von der angegebenen Protokollsequenz ab, wie in der folgenden Endpunkt-/Optionstabelle gezeigt.

Option

Protokollspezifische Optionen. Das Optionsfeld ist nicht erforderlich. Jede Option wird durch ein {name, value}-Paar angegeben, das die Syntax Optionsnamen=Optionswertverwendet. Optionen werden für jede Protokollsequenz definiert, wie in der folgenden Tabelle "Endpunkt/Option" dargestellt.

Protokollsequenz Endpunkt Beispiele Optionsname
ncacn_nb_tcp Ganze Zahl zwischen 1 und 254. Viele Werte zwischen 0 und 32 sind von Microsoft reserviert. 100 Nichts
ncacn_nb_ipx (wie oben) (wie oben) Nichts
ncacn_nb_nb (wie oben) (wie oben) Nichts
ncacn_ip_tcp Internetportnummer. 1025 Nichts
ncacn_np Benanntes Rohr. Der Name muss mit "\\pipe" beginnen. \\pipe\\pipename Sicherheit
ncacn_spx Ganze Zahl zwischen 1 und 65535. 5000 Nichts
ncacn_dnet_nsp DECnet Phase IV-Objektnummer (muss dem Zeichen #) oder dem Objektnamen vorangestellt sein. mailserver #17 Nichts
ncacn_at_dsp Eine Zeichenfolge mit einer Länge von bis zu 22 Bytes. myservicesendpoint Nichts
ncacn_vns_spp Reben SPP Portnummer zwischen 250 und 511. 500 Nichts
ncadg_mq Ganze Zahl zwischen 1 und 65535. 5000 Nichts
ncacn_http Internetportnummer. 2215 HTTP- und RPC-Proxyservernamen, HttpConnection-Option
ncadg_ip_udp Internetportnummer. 1025 Nichts
ncadg_ipx Ganze Zahl zwischen 1 und 65535. 5000 Nichts
ncalrpc Zeichenfolge, die den Anwendungs- oder Dienstnamen angibt. Die Zeichenfolge darf keine umgekehrten Schrägstriche enthalten. my_printer Sicherheit

Der HttpConnectionOption Optionsnamen, der für die ncacn_http Protokollsequenz unterstützt wird, verwendet den folgenden Wert.

Optionsname Wert
HttpConnectOption UseHttpProxy-

Mit dem HttpConnectionOption- können Sie das Verhalten von RPC beim Herstellen von HTTP-Verbindungen direkt anweisen. Der wert UseHttpProxy weist RPC an, seinen Datenverkehr jederzeit über den Http-Proxy weiterzuleiten, einschließlich, wenn der Client die Internetoptionen in Internet Explorer zum Umgehen des Proxyservers für lokale Adressen festgelegt hat. Mit dieser Option wird der Client aufgefordert, eine erzwungene Verbindung mit dem RPC-Proxy über den Http-Proxy herzustellen. Dadurch wird die Zeit beschleunigt, um eine Verbindung herzustellen, da die Verzögerungssuche nach dem RPC-Server direkt vor der Verwendung des HTTP-Proxys umgangen wird.

Wenn diese HttpConnectionOption Option verwendet wird und Internet Explorer auf dem Client nicht für die Verwendung dieses Http-Proxys konfiguriert ist, können Verbindungen mit RPC_S_INVALID_NETWORK_OPTIONSfehlschlagen.

HttpConnectOption=UseHttpProxy

Weitere Informationen zum HttpConnectionOption-finden Sie unter Verwenden von HTTP als RPC-Transport-.

Der Sicherheitsoptionsname, der für die ncalrpc-, ncacn_np-, ncadg_ip_udp- und ncadg_ipx-Protokollsequenzen unterstützt wird, verwendet die folgenden Optionswerte.

Optionsname Optionswert
Sicherheits- {identification | anonym | Identitätswechsel} {dynamic | static} {true | false}

Wenn der Name der Sicherheitsoption angegeben ist, muss auch ein Eintrag aus den einzelnen Sicherheitsoptionssätzen angegeben werden. Die Optionswerte müssen durch ein Leerzeichen getrennt werden. Beispielsweise sind die folgenden Option Felder gültig:

Security=identification dynamic true
Security=impersonation static true

Die Sicherheitsoptionswerte haben die folgenden Bedeutungen.

Wert der Sicherheitsoption Beschreibung
Anonym Der Client ist anonym für den Server.
Dynamisch Änderungen der Clientsicherheitsidentität werden vom Server angezeigt, wenn der Server Transportsicherheit verwendet. Dies ist der Standardmodus für die Sicherheit auf LRPC-Transportebene (ncalrpc) und für die Sicherheit der lokalen benannten Pipe (ncacn_np).
False- Effective = FALSE; Alle Einstellungen für Tokenberechtigungen, einschließlich der Einstellungen, die auf OFF festgelegt sind, sind im Token auf dem Server enthalten und können vom Server aktiviert werden. Berechtigungen sind nur für RPC-Aufrufe desselben Computers relevant.
Identifikation Der Server verfügt über Informationen zum Client, kann jedoch nicht als Identitätswechsel verwendet werden.
Identitätswechsel Der Server kann im Auftrag des Clients innerhalb des lokalen Systems handeln (Die Sicherheit auf Transportebene unterstützt keine Delegierung).
Statische Änderungen an der Clientsicherheitsidentität werden vom Server nicht angezeigt, wenn der Server Transportsicherheit verwendet. Dies ist der einzige Modus, der für die Sicherheit auf Remote-Transportebene (ncacn_np) verfügbar ist. Die Identität des Aufrufers wird während des ersten Remoteprozeduraufrufs für diesen Bindungshandle gespeichert, nicht zum Zeitpunkt der Erstellung des Bindungshandles.
True Effective = TRUE; Nur einstellungen für Tokenberechtigungen, die auf "EIN" festgelegt sind, sind im Token auf dem Server enthalten. Auf OFF festgelegte Berechtigungen können vom Server nicht aktiviert werden, wenn diese Option verwendet wird. Berechtigungen sind nur für RPC-Aufrufe desselben Computers relevant.

Weitere Informationen zu Sicherheitsoptionen Security.

Bemerkungen

Leerzeichen sind in Zeichenfolgenbindungen nicht zulässig, es sei denn, dies ist für die Option Syntax erforderlich. Die Standardeinstellungen für die Felder NetworkAddress, Endpointund Option felder variieren je nach dem Wert des ProtocolSequence Members.

Bei allen Zeichenfolgenbindungsfeldern wird ein einzelnes umgekehrter Schrägstrich (\) als Escapezeichen interpretiert. Um ein einzelnes literales umgekehrtes Schrägstrichzeichen anzugeben, müssen Sie zwei umgekehrte Schrägstriche (\\) angeben.

Eine Zeichenfolgenbindung enthält die Zeichendarstellung eines Bindungshandles und gelegentlich Teile eines Bindungshandles. Zeichenfolgenbindungen eignen sich für die Darstellung von Teilen eines Bindungshandles, können jedoch nicht zum Ausführen von Remoteprozeduraufrufen verwendet werden. Sie müssen zuerst in ein Bindungshandle konvertiert werden, indem RpcBindingFromStringBindingaufgerufen wird.

Darüber hinaus enthält eine Zeichenfolgenbindung nicht alle Informationen aus einem Bindungshandle. Beispielsweise werden die Authentifizierungsinformationen, sofern vorhanden, nicht in die Zeichenfolgenbindung übersetzt, die durch Aufrufen der RpcBindingToStringBindingzurückgegeben wird.

Während der Entwicklung einer verteilten Anwendung können Server ihre Bindungsinformationen mithilfe von Zeichenfolgenbindungen an Clients kommunizieren, um eine Clientserverbeziehung herzustellen, ohne die Datenbank für die Endpunktzuordnung oder die Namensdienstdatenbank zu verwenden. Um eine solche Beziehung herzustellen, verwenden Sie die Funktion RpcBindingToStringBinding, um einen oder mehrere Bindungshandles von einem Bindungsziehpunkt in eine Zeichenfolgenbindung zu konvertieren und die Zeichenfolgenbindung an den Client bereitzustellen.

Beispiele

Im Folgenden sind Beispiele für gültige Zeichenfolgenbindungen aufgeführt. In diesen Beispielen wird obj-uuid verwendet, um eine gültige UUID in Zeichenfolgenform darzustellen. Anstatt die UUID 308FB580-1EB2-11CA-923B-08002B1075A7 anzuzeigen, zeigen die Beispiele 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-

Verwenden von HTTP als RPC-Transport-