Enlace de cadenas
El enlace de cadena es una cadena de caracteres sin signo compuesta de cadenas que representan el UUID del objeto de enlace, la secuencia del protocolo RPC, la dirección de red y las opciones de punto de conexión y punto de conexión.
ObjectUUID@ProtocolSequence:NetworkAddress[Endpoint,Option]
Parámetros
-
ObjectUUID
-
UUID del objeto operado por la llamada a procedimiento remoto. En el servidor, la biblioteca en tiempo de ejecución rpc asigna el tipo de objeto a un vector de punto de entrada de administrador (una matriz de punteros de función) para invocar la rutina de administrador correcta. Para obtener una explicación sobre cómo asignar UUID de objeto a vectores de punto de entrada de administrador, vea Registrar interfaces.
-
ProtocolSequence
-
Cadena de caracteres que representa una combinación válida de un protocolo RPC (como ncacn), un protocolo de transporte (como TCP) y un protocolo de red (como IP). Microsoft RPC admite los siguientes protocolos especificados en constantes de secuencia de protocolo.
-
NetworkAddress
-
Dirección de red del sistema para recibir llamadas a procedimientos remotos.
Nota
Las secuencias de protocolo siguientes no se admiten a partir de Windows XP:
El formato y el contenido de la dirección de red dependen de la secuencia de protocolo especificada como se indica a continuación.
Secuencia de protocolos Dirección de red Ejemplos ncacn_nb_tcp Nombre del equipo myserver ncacn_nb_ipx Nombre del equipo myserver ncacn_nb_nb Nombre del equipo myserver ncacn_ip_tcp Dirección de Internet de cuatro octetos o nombre de host. Si la pila de red IPv6 está instalada, IPv6 es totalmente compatible y también se acepta una dirección IPv6. 128.10.2.30 anynode.microsoft.com ncacn_np Nombre del servidor (las barras diagonales inversas dobles iniciales son opcionales) myserver \\myotherserver ncacn_spx Dirección IPX de Internet o nombre del servidor ~000000108002B30612C myserver ncacn_dnet_nsp Sintaxis de área y nodo 4.120 ncacn_at_dsp Nombre del equipo, seguido opcionalmente por @ y el nombre de la zona de AppleTalk. El valor predeterminado es @*, la zona del cliente, si no se proporciona ninguna zona. servername@zonename nombreDeServidor ncacn_vns_spp Nombre del servidor de StreetTalk del formulario item@group@organization printserver@sdkdocs@microsoft ncadg_mq Nombre del servidor myserver ncacn_http Dirección de Internet (nombre descriptivo o de cuatro octetos o nombre de servidor local) 128.10.2.30 somesvr@anywhere.com mylocalsvr ncadg_ip_udp Dirección de Internet de cuatro octetos o nombre de host 128.10.2.30 anynode.microsoft.com ncadg_ipx Dirección IPX de Internet o nombre del servidor ~000000108002B30612C myserver ncalrpc Nombre de la máquina thismachine El campo de dirección de red es opcional. Cuando no especifica una dirección de red, el enlace de cadena hace referencia al host local. Es posible especificar el nombre del equipo local cuando se usa la secuencia de protocolo ncalrpc, pero hacerlo es completamente innecesario.
-
de punto de conexión de
-
Punto de conexión o dirección del proceso para recibir llamadas a procedimientos remotos. Un punto de conexión puede ir precedido por la palabra clave endpoint=. Especificar el punto de conexión es opcional si el servidor ha registrado sus enlaces con el asignador de puntos de conexión. Consulte RpcEpRegister.
El formato y el contenido de un punto de conexión dependen de la secuencia de protocolo especificada, como se muestra en la siguiente tabla de puntos de conexión y opción.
-
opción
-
Opciones específicas del protocolo. El campo de opción no es obligatorio. Cada opción se especifica mediante un par {name, value} que usa la sintaxis nombre de opción=valor de opción. Las opciones se definen para cada secuencia de protocolo, como se muestra en la siguiente tabla Punto de conexión o opción.
Secuencia de protocolos Extremo Ejemplos Nombre de opción ncacn_nb_tcp Entero entre 1 y 254. Microsoft reserva muchos valores entre 0 y 32. 100 Ninguno ncacn_nb_ipx (como se indicó anteriormente) (como se indicó anteriormente) Ninguno ncacn_nb_nb (como se indicó anteriormente) (como se indicó anteriormente) Ninguno ncacn_ip_tcp Número de puerto de Internet. 1025 Ninguno ncacn_np Canalización con nombre. El nombre debe comenzar por "\\pipe". \\pipe\\pipename Seguridad ncacn_spx Entero entre 1 y 65535. 5000 Ninguno ncacn_dnet_nsp Número de objeto de la fase IV de DECnet (debe ir precedido por el carácter #) o por el nombre del objeto. mailserver n.º 17 Ninguno ncacn_at_dsp Cadena de caracteres, hasta 22 bytes de longitud. myservicesendpoint Ninguno ncacn_vns_spp Número de puerto SPP de Vines entre 250 y 511. 500 Ninguno ncadg_mq Entero entre 1 y 65535. 5000 Ninguno ncacn_http Número de puerto de Internet. 2215 Nombres de servidor proxy HTTP y RPC, opción HttpConnection ncadg_ip_udp Número de puerto de Internet. 1025 Ninguno ncadg_ipx Entero entre 1 y 65535. 5000 Ninguno ncalrpc Cadena que especifica el nombre de aplicación o servicio. La cadena no puede incluir caracteres de barra diagonal inversa. my_printer Seguridad El nombre de la opción HttpConnectionOption, compatible con la secuencia del protocolo ncacn_http, toma el siguiente valor.
Nombre de opción Valor HttpConnectOption UseHttpProxy El HttpConnectionOption le permite dirigir el comportamiento de RPC al realizar conexiones HTTP. El valor UseHttpProxy indica a RPC que enrute su tráfico a través del proxy Http en todo momento, incluido cuando el cliente tiene las opciones de Internet establecidas en Internet Explorer para omitir el servidor proxy para las direcciones locales. Esta opción dirige al cliente a conectarse con fuerza al proxy RPC a través del proxy Http. Esto acelera el tiempo para establecer una conexión, ya que omite cualquier retraso en la búsqueda del servidor RPC directamente antes de usar el proxy HTTP.
Si este opción httpConnectionOption se usa e Internet Explorer en el cliente no está configurado para usar ese proxy Http, es posible que las conexiones produzcan errores con RPC_S_INVALID_NETWORK_OPTIONS.
HttpConnectOption=UseHttpProxy
Para obtener más información sobre el httpConnectionOption de, vea Uso de HTTP como unde transporte RPC.
El nombre de la opción seguridad de, compatible con ncalrpc, ncacn_np, ncadg_ip_udp y secuencias de protocolos de ncadg_ipx, toma los siguientes valores de opción.
Nombre de opción Valor de opción security {identification | anonymous | impersonation} {dynamic | static} {true | false} Si se especifica el nombre de la opción de seguridad, también se debe proporcionar una entrada de cada uno de los conjuntos de valores de opción de seguridad. Los valores de opción deben estar separados por un carácter de espacio único. Por ejemplo, los siguientes campos Option son válidos:
Security=identification dynamic true Security=impersonation static true
Los valores de opción de seguridad tienen los significados siguientes.
Valor de opción de seguridad Descripción Anónimo El cliente es anónimo para el servidor. Dinámico El servidor ve los cambios en la identidad de seguridad de cliente cuando el servidor usa la seguridad de transporte. Este es el modo predeterminado para la seguridad del nivel de transporte LRPC (ncalrpc) y para la seguridad del nivel de transporte de canalización con nombre local (ncacn_np). false Efectivo = FALSE; todos los valores de privilegios de token, incluidos los establecidos en OFF, se incluyen en el token en el servidor y el servidor puede habilitarlo. Los privilegios son relevantes solo para las llamadas RPC de la misma máquina. de identificación El servidor tiene información sobre el cliente, pero no puede suplantar. de suplantación El servidor puede actuar en nombre del cliente dentro del sistema local (la seguridad de nivel de transporte no admite la delegación). estático El servidor no ve los cambios en la identidad de seguridad de cliente cuando el servidor usa la seguridad de transporte. Este es el único modo disponible para la seguridad de nivel de transporte de canalización con nombre remoto (ncacn_np). La identidad del autor de la llamada se guarda durante la primera llamada a procedimiento remoto en ese identificador de enlace, no en el momento en que se crea el identificador de enlace. true Efectivo = TRUE; solo la configuración de privilegios de token establecida en ACTIVADO se incluye en el token en el servidor. El servidor no puede activar los privilegios establecidos en OFF si se usa esta opción. Los privilegios son relevantes solo para las llamadas RPC de la misma máquina. Para obtener más información sobre las opciones de seguridad, Security.
Observaciones
No se permite el espacio en blanco en los enlaces de cadena, excepto cuando sea necesario por la sintaxis de Option de. La configuración predeterminada para los campos NetworkAddress, Endpointy Option varían según el valor del miembro ProtocolSequence.
Para todos los campos de enlace de cadenas, un único carácter de barra diagonal inversa (\) se interpreta como un carácter de escape. Para especificar un solo carácter de barra diagonal inversa literal, debe proporcionar dos caracteres de barra diagonal inversa (\\).
Un enlace de cadena contiene la representación de caracteres de un identificador de enlace y, en ocasiones, partes de un identificador de enlace. Los enlaces de cadena son cómodos para representar partes de un identificador de enlace, pero no se pueden usar para realizar llamadas a procedimientos remotos. Primero deben convertirse en un identificador de enlace llamando a RpcBindingFromStringBinding.
Además, un enlace de cadena no contiene toda la información de un identificador de enlace. Por ejemplo, la información de autenticación, si existe, asociada a un identificador de enlace no se traduce en el enlace de cadena devuelto llamando al RpcBindingToStringBinding.
Durante el desarrollo de una aplicación distribuida, los servidores pueden comunicar su información de enlace a los clientes mediante enlaces de cadena para establecer una relación de cliente-servidor sin usar la base de datos de mapa de puntos de conexión o la base de datos de servicio de nombres. Para establecer dicha relación, use la función RpcBindingToStringBinding para convertir uno o varios identificadores de enlace de un vector de identificador de enlace a un enlace de cadena y proporcionar el enlace de cadena al cliente.
Ejemplos
A continuación se muestran ejemplos de enlaces de cadena válidos. En estos ejemplos, obj-uuid se usa para mayor comodidad para representar un UUID válido en formato de cadena. En lugar de mostrar el UUID 308FB580-1EB2-11CA-923B-08002B1075A7, los ejemplos muestran 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
Temas relacionados
-
usar HTTP como de transporte RPC