Liaison de chaîne
La liaison de chaîne est une chaîne de caractères non signée composée de chaînes qui représentent l’UUID de l’objet de liaison, la séquence de protocole RPC, l’adresse réseau et les options de point de terminaison et de point de terminaison.
ObjectUUID@ProtocolSequence:NetworkAddress[Endpoint,Option]
Paramètres
-
ObjectUUID
-
UUID de l’objet utilisé par l’appel de procédure distante. Sur le serveur, la bibliothèque d’exécution RPC mappe le type d’objet à un vecteur de point d’entrée du gestionnaire (tableau de pointeurs de fonction) pour appeler la routine de gestionnaire appropriée. Pour plus d’informations sur la façon de mapper des UUID d’objets à des vecteurs de point d’entrée de gestionnaire, consultez Inscription d’interfaces.
-
ProtocolSequence
-
Chaîne de caractères qui représente une combinaison valide d’un protocole RPC (comme ncacn), d’un protocole de transport (tel que TCP) et d’un protocole réseau (comme IP). Microsoft RPC prend en charge les protocoles suivants spécifiés dans Constantes de séquence de protocole.
-
NetworkAddress
-
Adresse réseau du système pour recevoir des appels de procédure distante.
Notes
Les séquences de protocole suivantes ne sont pas prises en charge à partir de Windows XP :
Le format et le contenu de l’adresse réseau dépendent de la séquence de protocole spécifiée comme suit.
Séquence de protocole Adresse du réseau Exemples ncacn_nb_tcp Nom de l'ordinateur Myserver ncacn_nb_ipx Nom de l'ordinateur Myserver ncacn_nb_nb Nom de l'ordinateur Myserver Ncacn_ip_tcp Adresse Internet de quatre octets ou nom d’hôte. Si la pile réseau IPv6 est installée, IPv6 est entièrement pris en charge et une adresse IPv6 est également acceptée. 128.10.2.30 anynode.microsoft.com ncacn_np Nom du serveur (les barres obliques inverses doubles de début sont facultatives) myserver \\myotherserver ncacn_spx Adresse Internet IPX ou nom du serveur ~0000000108002B30612C myserver ncacn_dnet_nsp Syntaxe de zone et de nœud 4.120 ncacn_at_dsp Nom de l’ordinateur, éventuellement suivi de @ et du nom de la zone AppleTalk. La valeur par défaut est @*, la zone du client, si aucune zone n’est fournie servername@zonename servername ncacn_vns_spp Nom du serveur StreetTalk du formulaire item@group@organization printserver@sdkdocs@microsoft ncadg_mq Nom du serveur Myserver ncacn_http Adresse Internet (quatre octets ou nom convivial, ou nom du serveur local 128.10.2.30 somesvr@anywhere.com mylocalsvr ncadg_ip_udp Adresse Internet de quatre octets ou nom d’hôte 128.10.2.30 anynode.microsoft.com ncadg_ipx Adresse Internet IPX ou nom du serveur ~0000000108002B30612C myserver ncalrpc Nom de l'ordinateur thismachine Le champ adresse réseau est facultatif. Lorsque vous ne spécifiez pas d’adresse réseau, la liaison de chaîne fait référence à votre hôte local. Il est possible de spécifier le nom de l’ordinateur local lorsque vous utilisez la séquence de protocole ncalrpc , mais cela est complètement inutile.
-
Terminaison
-
Point de terminaison, ou adresse, du processus pour recevoir des appels de procédure distante. Un point de terminaison peut être précédé du mot clé endpoint=. La spécification du point de terminaison est facultative si le serveur a inscrit ses liaisons auprès du mappeur de point de terminaison. Consultez RpcEpRegister.
Le format et le contenu d’un point de terminaison dépendent de la séquence de protocole spécifiée, comme indiqué dans le tableau de points de terminaison/options suivant.
-
Option
-
Options spécifiques au protocole. Le champ d’option n’est pas obligatoire. Chaque option est spécifiée par une paire {name, value} qui utilise lavaleur de l’option nom = de l’option de syntaxe. Les options sont définies pour chaque séquence de protocole, comme indiqué dans le tableau Point de terminaison/Option suivant.
Séquence de protocole Point de terminaison Exemples Nom d'option ncacn_nb_tcp Entier compris entre 1 et 254. De nombreuses valeurs comprises entre 0 et 32 sont réservées par Microsoft. 100 None ncacn_nb_ipx (comme ci-dessus) (comme ci-dessus) None ncacn_nb_nb (comme ci-dessus) (comme ci-dessus) None Ncacn_ip_tcp Numéro de port Internet. 1025 None ncacn_np Canal nommé. Le nom doit commencer par « \\pipe ». \\pipe\\pipename Sécurité ncacn_spx Entier compris entre 1 et 65535. 5 000 None ncacn_dnet_nsp Numéro d’objet DECnet phase IV (doit être précédé du caractère #) ou nom de l’objet. mailserver #17 None ncacn_at_dsp Chaîne de caractères de 22 octets maximum. myservicesendpoint None ncacn_vns_spp Vines SPP numéro de port entre 250 et 511. 500 None ncadg_mq Entier compris entre 1 et 65535. 5 000 None ncacn_http Numéro de port Internet. 2215 Noms des serveurs proxy HTTP et RPC, option HttpConnection ncadg_ip_udp Numéro de port Internet. 1025 None ncadg_ipx Entier compris entre 1 et 65535. 5 000 None ncalrpc Chaîne spécifiant le nom de l’application ou du service. La chaîne ne peut pas inclure de caractères de barre oblique inverse. my_printer Sécurité Le nom de l’option HttpConnectionOption , pris en charge pour la séquence de protocole ncacn_http, prend la valeur suivante.
Nom d'option Valeur HttpConnectOption UtiliserHttpProxy L’option HttpConnectionOption vous permet de diriger le comportement de RPC lors de l’établissement de connexions HTTP. La valeur UseHttpProxy indique à RPC d’acheminer son trafic via le proxy Http à tout moment, y compris lorsque les options Internet du client sont définies dans Internet Explorer pour contourner le serveur proxy pour les adresses locales. Cette option indique au client de se connecter de force au proxy RPC via le proxy Http. Cela accélère le temps nécessaire à l’établissement d’une connexion, car elle contourne tout délai de recherche du serveur RPC directement avant l’utilisation du proxy HTTP.
Si cette option HttpConnectionOption est utilisée et que l’Explorer Internet sur le client n’est pas configuré pour utiliser ce proxy Http, les connexions peuvent échouer avec RPC_S_INVALID_NETWORK_OPTIONS.
HttpConnectOption=UseHttpProxy
Pour plus d’informations sur HttpConnectionOption, consultez Utilisation de HTTP comme transport RPC.
Le nom de l’option de sécurité , pris en charge pour les séquences de protocole ncalrpc, ncacn_np, ncadg_ip_udp et ncadg_ipx, prend les valeurs d’option suivantes.
Nom d'option Valeur d'option Sécurité {identification | anonyme | emprunt d’identité} {dynamic | static} {true | false} Si le nom de l’option de sécurité est spécifié, une entrée de chacun des ensembles de valeurs d’option de sécurité doit également être fournie. Les valeurs d’option doivent être séparées par un seul espace. Par exemple, les champs Option suivants sont valides :
Security=identification dynamic true Security=impersonation static true
Les valeurs d’option de sécurité ont les significations suivantes.
Valeur de l’option de sécurité Description Anonyme Le client est anonyme au serveur. Dynamique Les modifications apportées à l’identité de sécurité du client sont visibles par le serveur lorsque celui-ci utilise la sécurité de transport. Il s’agit du mode par défaut pour la sécurité au niveau du transport LRPC (ncalrpc) et pour la sécurité au niveau du transport du canal nommé local (ncacn_np). False Effective = FALSE; tous les paramètres de privilèges de jeton, y compris ceux définis sur OFF, sont inclus dans le jeton sur le serveur et peuvent être activés par le serveur. Les privilèges s’appliquent uniquement aux appels RPC sur la même machine. Identification Le serveur dispose d’informations sur le client, mais ne peut pas emprunter l’identité. Emprunt d'identité Le serveur peut agir au nom du client au sein du système local (la sécurité au niveau du transport ne prend pas en charge la délégation). Statique Les modifications apportées à l’identité de sécurité du client ne sont pas visibles par le serveur lorsque celui-ci utilise la sécurité de transport. Il s’agit du seul mode disponible pour la sécurité de niveau de transport de canal nommé (ncacn_np) distante. L’identité de l’appelant est enregistrée lors du premier appel de procédure distante sur ce handle de liaison, et non au moment de la création du handle de liaison. True Effective = TRUE; seuls les paramètres de privilèges de jeton définis sur ON sont inclus dans le jeton sur le serveur. Les privilèges définis sur OFF ne peuvent pas être activés par le serveur si cette option est utilisée. Les privilèges s’appliquent uniquement aux appels RPC sur la même machine. Pour plus d’informations sur les options de sécurité, consultez Sécurité.
Notes
Les espaces blancs ne sont pas autorisés dans les liaisons de chaîne, sauf si la syntaxe Option l’exige. Les paramètres par défaut des champs NetworkAddress, Endpoint et Option varient en fonction de la valeur du membre ProtocolSequence .
Pour tous les champs de liaison de chaîne, un seul caractère barre oblique inverse (\) est interprété comme un caractère d’échappement. Pour spécifier un seul caractère de barre oblique inverse littérale, vous devez fournir deux caractères de barre oblique inverse (\\).
Une liaison de chaîne contient la représentation en caractères d’un handle de liaison et parfois des parties d’un handle de liaison. Les liaisons de chaîne sont pratiques pour représenter des parties d’un handle de liaison, mais elles ne peuvent pas être utilisées pour effectuer des appels de procédure distante. Ils doivent d’abord être convertis en handle de liaison en appelant RpcBindingFromStringBinding.
En outre, une liaison de chaîne ne contient pas toutes les informations d’un handle de liaison. Par exemple, les informations d’authentification, le cas échéant, associées à un handle de liaison ne sont pas traduites dans la liaison de chaîne retournée en appelant RpcBindingToStringBinding.
Pendant le développement d’une application distribuée, les serveurs peuvent communiquer leurs informations de liaison aux clients à l’aide de liaisons de chaînes pour établir une relation client-serveur sans utiliser la base de données endpoint-map ou la base de données name-service. Pour établir une telle relation, utilisez la fonction RpcBindingToStringBinding pour convertir un ou plusieurs handles de liaison d’un vecteur de handle de liaison en liaison de chaîne et fournir la liaison de chaîne au client.
Exemples
Voici des exemples de liaisons de chaîne valides. Dans ces exemples, obj-uuid est utilisé pour représenter un UUID valide sous forme de chaîne. Au lieu d’afficher l’UUID 308FB580-1EB2-11CA-923B-08002B1075A7, les exemples montrent 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