Адрес конечной точки
Адрес конечной точки представляет адрес службы в сети. При открытии канала, вызвав функцию WsOpenChannel , необходимо указать адрес конечной точки службы, с которой вы будете взаимодействовать, а также указать канал, который вы хотите открыть.
Адрес конечной точки состоит из следующих элементов:
- URL-адрес
- набор заголовков (необязательно)
- набор расширений (необязательно)
- необязательное удостоверение , представляющее удостоверение безопасности службы.
При адресе сообщения URL-адрес становится заголовком "To" сообщения. Все заголовки, которые являются частью адреса конечной точки, также добавляются в сообщение.
Каналы автоматически адресуют все отправленные сообщения, используя структуру WS_ENDPOINT_ADDRESS , переданную в WsOpenChannel. Вы также можете использовать функцию WsAddressMessage , чтобы переопределить это поведение по умолчанию.
Когда WS_ENDPOINT_ADDRESS передается в качестве параметра, функции WsOpenChannel и WsOpenServiceProxy создают копию параметра WS_ENDPOINT_ADDRESS в памяти и ее размер ограничен 65536 байтами. WsAddressMessage не имеет этого ограничения, так как не требует создания копии параметра WS_ENDPOINT_ADDRESS .
Расширения, указанные в поле расширенийWS_ENDPOINT_ADDRESS , не используются для обращения к сообщению, а являются механизмом расширения, который можно использовать для предоставления дополнительных сведений (например, метаданных) о службе. Общие расширения можно считывать с помощью функции WsReadEndpointAddressExtension .
Необязательное поле идентификатора адреса конечной точки может включать, например, DNS-имя компьютера, на котором запущена служба, или имя участника-пользователя учетной записи Windows, под которой выполняется служба. Поле идентификатора не используется для адресации сообщения, но может использоваться для получения маркера безопасности для службы (например, для получения билета Kerberos в целевое имя участника-пользователя) и для проверки удостоверения ответов службы (например, удостоверение DNS, используемое для проверки имени сертификата службы, возвращенного во время SSL).
Адреса конечных точек можно считывать и записывать с помощью сериализации со значением перечисления WS_ENDPOINT_ADDRESS_TYPE из WS_TYPE. Обратите внимание, что для сериализации адреса конечной точки необходимо знать версию спецификации, используемой для заголовков адресации, как указано в перечислении WS_ADDRESSING_VERSION .