Associação de cadeia de caracteres

A associação de cadeia de caracteres é uma cadeia de caracteres sem sinal composta de cadeias de caracteres que representam o objeto de associação UUID, a sequência de protocolo RPC, o endereço de rede e as opções de ponto de extremidade e ponto de extremidade.

ObjectUUID@ProtocolSequence:NetworkAddress[Endpoint,Option]

Parâmetros

ObjectUUID

UUID do objeto operado pela chamada de procedimento remoto. No servidor, a biblioteca de tempo de execução RPC mapeia o tipo de objeto para um vetor de ponto de entrada do gerenciador (uma matriz de ponteiros de função) para invocar a rotina correta do gerenciador. Para obter uma discussão sobre como mapear UUIDs de objeto para vetores de ponto de entrada do gerenciador, consulte Registrando interfaces.

ProtocolSequence

Cadeia de caracteres que representa uma combinação válida de um protocolo RPC (como ncacn), um protocolo de transporte (como TCP) e um protocolo de rede (como IP). O Microsoft RPC dá suporte aos seguintes protocolos especificados em Constantes de Sequência de Protocolo.

Networkaddress

Endereço de rede do sistema para receber chamadas de procedimento remoto.

Observação

As seguintes sequências de protocolo não têm suporte a partir do Windows XP:

O formato e o conteúdo do endereço de rede dependem da sequência de protocolo especificada da seguinte maneira.

Sequência de protocolo Endereços de rede Exemplos
ncacn_nb_tcp Nome do computador Myserver
ncacn_nb_ipx Nome do computador Myserver
ncacn_nb_nb Nome do computador Myserver
Ncacn_ip_tcp Endereço de Internet de quatro octetos ou nome do host. Se a pilha de rede IPv6 estiver instalada, o IPv6 terá suporte total e um endereço IPv6 também será aceito. 128.10.2.30 anynode.microsoft.com
ncacn_np Nome do servidor (barras invertidas duplas à esquerda são opcionais) myserver \\myotherserver
ncacn_spx Endereço IPX na Internet ou nome do servidor ~0000000108002B30612C myserver
ncacn_dnet_nsp Sintaxe de área e nó 4.120
ncacn_at_dsp Nome do computador, opcionalmente seguido por @ e o nome da zona do AppleTalk. O padrão é @*, a zona do cliente, se nenhuma zona for fornecida servername@zonename servername
ncacn_vns_spp Nome do servidor StreetTalk do formulário item@group@organization printserver@sdkdocs@microsoft
ncadg_mq Nome do servidor Myserver
ncacn_http Endereço da Internet (nome amigável ou de quatro octetos ou nome do servidor local 128.10.2.30 somesvr@anywhere.com mylocalsvr
ncadg_ip_udp Endereço de Internet de quatro octetos ou nome do host 128.10.2.30 anynode.microsoft.com
ncadg_ipx Endereço IPX na Internet ou nome do servidor ~0000000108002B30612C myserver
ncalrpc Nome do computador thismachine

O campo de endereço de rede é opcional. Quando você não especifica um endereço de rede, a associação de cadeia de caracteres refere-se ao host local. É possível especificar o nome do computador local quando você usa a sequência de protocolo ncalrpc , no entanto, fazer isso é completamente desnecessário.

Extremidade

Ponto de extremidade ou endereço do processo para receber chamadas de procedimento remoto. Um ponto de extremidade pode ser precedido pelo palavra-chave endpoint=. Especificar o ponto de extremidade será opcional se o servidor tiver registrado suas associações com o mapeador de ponto de extremidade. Consulte RpcEpRegister.

O formato e o conteúdo de um ponto de extremidade dependem da sequência de protocolo especificada, conforme mostrado na tabela de ponto de extremidade/opção a seguir.

Opção

Opções específicas do protocolo. O campo de opção não é necessário. Cada opção é especificada por um par {name, value} que usa o valor da opção de nome= daopção de sintaxe. As opções são definidas para cada sequência de protocolo, conforme mostrado na tabela Endpoint/Option a seguir.

Sequência de protocolo Ponto de extremidade Exemplos Nome da opção
ncacn_nb_tcp Inteiro entre 1 e 254. Muitos valores entre 0 e 32 são reservados pela Microsoft. 100 Nenhum
ncacn_nb_ipx (como acima) (como acima) Nenhum
ncacn_nb_nb (conforme acima) (conforme acima) Nenhum
Ncacn_ip_tcp Número da porta da Internet. 1025 Nenhum
ncacn_np Pipe nomeado. O nome deve começar com "\\pipe". \\pipe\\pipename Segurança
ncacn_spx Inteiro entre 1 e 65535. 5.000 Nenhum
ncacn_dnet_nsp Número do objeto IV da fase DECnet (deve ser precedido pelo caractere #) ou pelo nome do objeto. mailerver nº 17 Nenhum
ncacn_at_dsp Uma cadeia de caracteres com até 22 bytes de comprimento. myservicesendpoint Nenhum
ncacn_vns_spp Número da porta SPP do Vines entre 250 e 511. 500 Nenhum
ncadg_mq Inteiro entre 1 e 65535. 5.000 Nenhum
ncacn_http Número da porta da Internet. 2215 Nomes de servidor proxy HTTP e RPC, opção HttpConnection
ncadg_ip_udp Número da porta da Internet. 1025 Nenhum
ncadg_ipx Inteiro entre 1 e 65535. 5.000 Nenhum
ncalrpc Cadeia de caracteres que especifica o nome do aplicativo ou do serviço. A cadeia de caracteres não pode incluir caracteres de barra invertida. my_printer Segurança

O nome da opção HttpConnectionOption , com suporte para a sequência de protocolo ncacn_http, usa o valor a seguir.

Nome da opção Valor
HttpConnectOption UsarHttpProxy

O HttpConnectionOption permite que você direcione o comportamento do RPC ao fazer conexões HTTP. O valor UseHttpProxy instrui o RPC a rotear seu tráfego por meio do proxy Http o tempo todo, inclusive quando o cliente tem as Opções de Internet definidas na Internet Explorer para Ignorar o servidor proxy para endereços locais. Essa opção orienta o cliente a se conectar com força ao proxy RPC por meio do proxy Http. Isso acelera o tempo para estabelecer uma conexão, pois ignora qualquer atraso na pesquisa do servidor RPC diretamente antes de usar o proxy HTTP.

Se essa opção HttpConnectionOption for usada e a internet Explorer no cliente não estiver configurada para usar esse proxy Http, as conexões poderão falhar com RPC_S_INVALID_NETWORK_OPTIONS.

HttpConnectOption=UseHttpProxy

Para obter mais informações sobre o HttpConnectionOption, consulte Usando HTTP como um transporte RPC.

O nome da opção Segurança , com suporte para as sequências de protocolo ncalrpc, ncacn_np, ncadg_ip_udp e ncadg_ipx, usa os valores de opção a seguir.

Nome da opção Valor de opção
Segurança {identification | anonymous | impersonation} {dynamic | static} {true | false}

Se o nome da opção de segurança for especificado, uma entrada de cada um dos conjuntos de valores de opção de segurança também deverá ser fornecida. Os valores de opção devem ser separados por um caractere de espaço único. Por exemplo, os seguintes campos de opção são válidos:

Security=identification dynamic true
Security=impersonation static true

Os valores de opção de segurança têm os seguintes significados.

Valor da opção de segurança Descrição
Anônima O cliente é anônimo ao servidor.
Dinâmico As alterações na identidade de segurança do cliente são vistas pelo servidor quando o servidor usa a segurança de transporte. Esse é o modo padrão para segurança no nível de transporte LRPC (ncalrpc) e para segurança de nível de transporte local nomeada (ncacn_np).
Falso Effective = FALSE; todas as configurações de privilégios de token, incluindo aquelas definidas como OFF, são incluídas no token no servidor e podem ser habilitadas pelo servidor. Os privilégios são relevantes apenas para chamadas RPC do mesmo computador.
Identificação O servidor tem informações sobre o cliente, mas não pode representar.
Representação O servidor pode agir em nome do cliente dentro do sistema local (a segurança em nível de transporte não dá suporte à delegação).
Estático As alterações na identidade de segurança do cliente não são vistas pelo servidor quando o servidor usa a segurança de transporte. Esse é o único modo disponível para segurança de nível de transporte de pipe nomeado remoto (ncacn_np). A identidade do chamador é salva durante a primeira chamada de procedimento remoto nesse identificador de associação, não no momento em que o identificador de associação é criado.
Verdadeiro Effective = TRUE; somente as configurações de privilégios de token definidas como ON são incluídas no token no servidor. Os privilégios definidos como OFF não poderão ser ativados pelo servidor se essa opção for usada. Os privilégios são relevantes apenas para chamadas RPC do mesmo computador.

Para obter mais informações sobre opções de segurança, Segurança.

Comentários

O espaço em branco não é permitido em associações de cadeia de caracteres, exceto quando exigido pela sintaxe Option . As configurações padrão para os campos NetworkAddress, Endpoint e Option variam de acordo com o valor do membro ProtocolSequence .

Para todos os campos de associação de cadeia de caracteres, um único caractere de barra invertida (\) é interpretado como um caractere de escape. Para especificar um único caractere de barra invertida literal, você deve fornecer dois caracteres de barra invertida (\\).

Uma associação de cadeia de caracteres contém a representação de caractere de um identificador de associação e, ocasionalmente, partes de um identificador de associação. As associações de cadeia de caracteres são convenientes para representar partes de um identificador de associação, mas não podem ser usadas para fazer chamadas de procedimento remoto. Primeiro, eles devem ser convertidos em um identificador de associação chamando RpcBindingFromStringBinding.

Além disso, uma associação de cadeia de caracteres não contém todas as informações de um identificador de associação. Por exemplo, as informações de autenticação, se houver, associadas a um identificador de associação não são convertidas na associação de cadeia de caracteres retornada chamando rpcBindingToStringBinding.

Durante o desenvolvimento de um aplicativo distribuído, os servidores podem comunicar suas informações de associação aos clientes usando associações de cadeia de caracteres para estabelecer uma relação cliente-servidor sem usar o banco de dados de mapa de ponto de extremidade ou o banco de dados name-service. Para estabelecer essa relação, use a função RpcBindingToStringBinding para converter um ou mais identificadores de associação de um vetor de identificador de associação para uma associação de cadeia de caracteres e forneça a associação de cadeia de caracteres ao cliente.

Exemplos

Veja a seguir exemplos de associações de cadeia de caracteres válidas. Nesses exemplos, obj-uuid é usado para conveniência para representar uma UUID válida no formulário de cadeia de caracteres. Em vez de mostrar a UUID 308FB580-1EB2-11CA-923B-08002B1075A7, os exemplos mostram 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

Usando HTTP como um transporte RPC