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’objet aux vecteurs de point d’entrée du gestionnaire, consultez Interfaces d’inscription.
-
ProtocolSequence
-
Chaîne de caractères qui représente une combinaison valide d’un protocole RPC (tel que ncacn), un protocole de transport (tel que TCP) et un protocole réseau (par exemple, IP). Microsoft RPC prend en charge les protocoles suivants spécifiés dans les constantes de séquence de protocole .
-
NetworkAddress
-
Adresse réseau du système pour recevoir des appels de procédure distante.
Note
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 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 à 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 principales sont facultatives) myserver \\myotherserver ncacn_spx Adresse Internet IPX ou nom du serveur ~000000108002B30612C 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 nom_serveur servername@zonename 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 (nom convivial ou quatre octets ou nom de serveur local) 128.10.2.30 somesvr@anywhere.com mylocalsvr ncadg_ip_udp Adresse Internet à quatre octets ou nom d’hôte 128.10.2.30 anynode.microsoft.com ncadg_ipx Adresse Internet IPX ou nom du serveur ~000000108002B30612C myserver ncalrpc Nom de l’ordinateur thismachine Le champ d’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 ncalrpc, mais cela est complètement inutile.
-
point de terminaison
-
Point de terminaison ou adresse du processus de réception d’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. Voir 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/option 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 la syntaxe nom d’option=valeur d’option. 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 Extrémité Exemples Nom de l’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 Aucun ncacn_nb_ipx (comme ci-dessus) (comme ci-dessus) Aucun ncacn_nb_nb (comme ci-dessus) (comme ci-dessus) Aucun ncacn_ip_tcp Numéro de port Internet. 1025 Aucun ncacn_np Canal nommé. Le nom doit commencer par « \\pipe ». \\pipe\\pipename Sécurité ncacn_spx Entier compris entre 1 et 65535. 5000 Aucun ncacn_dnet_nsp Numéro d’objet DECnet phase IV (doit être précédé du caractère #) ou du nom de l’objet. mailserver #17 Aucun ncacn_at_dsp Chaîne de caractères, jusqu’à 22 octets de long. myservicesendpoint Aucun ncacn_vns_spp Numéro de port SPP vines compris entre 250 et 511. 500 Aucun ncadg_mq Entier compris entre 1 et 65535. 5000 Aucun ncacn_http Numéro de port Internet. 2215 Noms de serveur proxy HTTP et RPC, option HttpConnection ncadg_ip_udp Numéro de port Internet. 1025 Aucun ncadg_ipx Entier compris entre 1 et 65535. 5000 Aucun ncalrpc Chaîne spécifiant le nom de l’application ou du service. La chaîne ne peut pas inclure de barres obliques inverses. 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 de l’option Valeur HttpConnectOption UseHttpProxy Le HttpConnectionOption vous permet de diriger le comportement de RPC lors de la création de connexions HTTP. La valeur UseHttpProxy indique à RPC d’acheminer son trafic via le proxy Http à tout moment, notamment lorsque le client dispose des options Internet définies dans Internet Explorer pour contourner le serveur proxy pour les adresses locales. Cette option indique au client de se connecter avec force au proxy RPC via le proxy Http. Cela accélère le temps d’établissement d’une connexion, car elle contourne tout délai de recherche du serveur RPC directement avant d’utiliser le proxy HTTP.
Si cette option HttpConnectionOption est utilisée et Internet Explorer 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 le HttpConnectionOption, consultez Utilisation de HTTP en tant quede transport RPC.
Le nom de l’option 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 de l’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 caractère d’espace unique. 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 sur le serveur. Dynamique Les modifications apportées à l’identité de sécurité du client sont visibles par le serveur lorsque le serveur 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é 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 sont pertinents uniquement pour les appels RPC identiques. Identification Le serveur dispose d’informations sur le client, mais ne peut pas emprunter l’identité. emprunt d’identité Le serveur peut agir pour le compte 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 le serveur utilise la sécurité de transport. Il s’agit du seul mode disponible pour la sécurité au niveau du transport du canal nommé distant (ncacn_np). L’identité de l’appelant est enregistrée pendant le 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 sont pertinents uniquement pour les appels RPC identiques. Pour plus d’informations sur les options de sécurité, Sécurité.
Remarques
L’espace blanc n’est pas autorisé dans les liaisons de chaîne, sauf si nécessaire par la syntaxe option. Les paramètres par défaut des champs NetworkAddress, Endpointet Option varient en fonction de la valeur du membre ProtocolSequence.
Pour tous les champs de liaison de chaîne, un seul caractère de barre oblique inverse (\) est interprété comme un caractère d’échappement. Pour spécifier un caractère de barre oblique inverse littéral unique, vous devez fournir deux caractères de barre oblique inverse (\\).
Une liaison de chaîne contient la représentation de caractère 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 la 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 à partir d’un vecteur de handle de liaison en liaison de chaîne et fournissez 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
Rubriques connexes
-
utiliser HTTP comme de transport RPC