Endereço do ponto de extremidade
Um endereço de ponto de extremidade representa o endereço de um serviço na rede. Ao abrir um canal , chamando a função WsOpenChannel, você precisa fornecer o endereço do ponto de extremidade do serviço com o qual se comunicar, além de especificar o canal que deseja abrir.
Um endereço de ponto de extremidade consiste em:
- um de URL de
- um conjunto de cabeçalhos (opcional)
- um conjunto de extensões (opcional)
- um de identidade opcional que representa a identidade de segurança do serviço.
Quando uma mensagem é endereçada, a URL se torna o cabeçalho "Para" da mensagem. Todos os cabeçalhos que fazem parte do endereço do ponto de extremidade também são adicionados à mensagem.
Os canais abordam automaticamente as mensagens enviadas usando a estrutura de WS_ENDPOINT_ADDRESS que foi passada para o WsOpenChannel. Você também pode usar a funçãoWsAddressMessage para substituir esse comportamento padrão.
Quando WS_ENDPOINT_ADDRESS é passado como um parâmetro, as funções WsOpenChannel e WsOpenServiceProxy criam uma cópia do parâmetro WS_ENDPOINT_ADDRESS na memória e seu tamanho é limitado por 65536 bytes. WsAddressMessage não tem essa limitação porque não requer a criação de uma cópia do parâmetro WS_ENDPOINT_ADDRESS.
As extensões especificadas nas extensões campo de WS_ENDPOINT_ADDRESS não são usadas para endereçar a mensagem, mas sim um mecanismo de extensibilidade que pode ser usado para fornecer informações adicionais (por exemplo, metadados) sobre o serviço. Extensões comuns podem ser lidas com a funçãoWsReadEndpointAddressExtension.
O campo de identidade opcional do endereço do ponto de extremidade pode incluir, por exemplo, o nome DNS do computador no qual o serviço está em execução ou o UPN da conta do Windows na qual o serviço está sendo executado. O campo de identidade não é usado para endereçar a mensagem, mas pode ser usado para obter um token de segurança para o serviço (por exemplo, para obter um tíquete Kerberos para o UPN de destino) e para verificar a identidade das respostas do serviço (por exemplo, uma identidade DNS usada para verificações de nome no certificado de serviço retornado durante o SSL).
Os endereços de ponto de extremidade podem ser lidos e gravados usando de serialização com o valor de enumeração WS_ENDPOINT_ADDRESS_TYPE de WS_TYPE. Observe que, para serializar um endereço de ponto de extremidade, você deve conhecer a versão da especificação usada para os cabeçalhos de endereçamento, conforme especificado na enumeração WS_ADDRESSING_VERSION.