Indirizzo endpoint
Un indirizzo endpoint rappresenta l'indirizzo di un servizio in rete. Quando si apre un canale , chiamando la funzione WsOpenChannel, è necessario specificare l'indirizzo endpoint del servizio con cui comunicare, nonché specificare il canale da aprire.
Un indirizzo endpoint è costituito da:
- URL di
- un set di intestazioni (facoltativo)
- un set di estensioni (facoltativo)
- un'identità facoltativa che rappresenta l'identità di sicurezza del servizio.
Quando viene indirizzato un messaggio, l'URL diventa l'intestazione "A" del messaggio. Anche le intestazioni che fanno parte dell'indirizzo endpoint vengono aggiunte al messaggio.
I canali indirizzano automaticamente tutti i messaggi inviati, usando la struttura WS_ENDPOINT_ADDRESS passata al WsOpenChannel. È anche possibile usare la funzioneWsAddressMessageper eseguire l'override di questo comportamento predefinito.
Quando WS_ENDPOINT_ADDRESS viene passato come parametro, le funzioni WsOpenChannel e WsOpenServiceProxy creano una copia del parametro WS_ENDPOINT_ADDRESS in memoria e le relative dimensioni sono limitate da 65536 byte. WsAddressMessage non presenta questa limitazione perché non richiede la creazione di una copia del parametro WS_ENDPOINT_ADDRESS.
Le estensioni specificate nella estensioni campo di WS_ENDPOINT_ADDRESS non vengono usate per indirizzare il messaggio, ma sono invece un meccanismo di estendibilità che può essere usato per fornire informazioni aggiuntive (ad esempio metadati) sul servizio. Le estensioni comuni possono essere lette con la funzione WsReadEndpointAddressExtension.
Il campo di identità facoltativo dell'indirizzo endpoint può includere, ad esempio, il nome DNS del computer in cui è in esecuzione il servizio o l'UPN dell'account di Windows in cui è in esecuzione il servizio. Il campo Identity non viene usato per indirizzare il messaggio, ma può essere usato per ottenere un token di sicurezza per il servizio (ad esempio, per ottenere un ticket Kerberos per l'UPN di destinazione) e per verificare l'identità delle risposte del servizio (ad esempio, un'identità DNS usata per i controlli dei nomi sul certificato del servizio restituito durante SSL).
Gli indirizzi endpoint possono essere letti e scritti usando di serializzazione con il valore di enumerazione WS_ENDPOINT_ADDRESS_TYPE da WS_TYPE. Per serializzare un indirizzo endpoint, è necessario conoscere la versione della specifica usata per le intestazioni di indirizzamento, come specificato nell'enumerazione WS_ADDRESSING_VERSION.