Compartir a través de


enumeración WS_MESSAGE_PROPERTY_ID (webservices.h)

Cada propiedad de mensaje es de tipo WS_MESSAGE_PROPERTY, se identifica mediante un identificador y tiene un valor asociado.

Syntax

typedef enum {
  WS_MESSAGE_PROPERTY_STATE = 0,
  WS_MESSAGE_PROPERTY_HEAP = 1,
  WS_MESSAGE_PROPERTY_ENVELOPE_VERSION = 2,
  WS_MESSAGE_PROPERTY_ADDRESSING_VERSION = 3,
  WS_MESSAGE_PROPERTY_HEADER_BUFFER = 4,
  WS_MESSAGE_PROPERTY_HEADER_POSITION = 5,
  WS_MESSAGE_PROPERTY_BODY_READER = 6,
  WS_MESSAGE_PROPERTY_BODY_WRITER = 7,
  WS_MESSAGE_PROPERTY_IS_ADDRESSED = 8,
  WS_MESSAGE_PROPERTY_HEAP_PROPERTIES = 9,
  WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES = 10,
  WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES = 11,
  WS_MESSAGE_PROPERTY_IS_FAULT = 12,
  WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS = 13,
  WS_MESSAGE_PROPERTY_USERNAME = 14,
  WS_MESSAGE_PROPERTY_ENCODED_CERT = 15,
  WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN = 16,
  WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN = 17,
  WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN = 18,
  WS_MESSAGE_PROPERTY_SAML_ASSERTION = 19,
  WS_MESSAGE_PROPERTY_SECURITY_CONTEXT = 20,
  WS_MESSAGE_PROPERTY_PROTECTION_LEVEL = 21
} WS_MESSAGE_PROPERTY_ID;

Constantes

 
WS_MESSAGE_PROPERTY_STATE
Valor: 0
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es el WS_MESSAGE_STATE actual del mensaje.

Esta propiedad está disponible en todos los estados del mensaje.
WS_MESSAGE_PROPERTY_HEAP
Valor: 1
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es el WS_HEAP del mensaje. El montón es
propiedad del mensaje. Un usuario de un mensaje es libre de hacer más
asignaciones dentro de este montón. Las asignaciones dentro del montón se liberan
cuando se restablece o libera un mensaje.


El usuario del montón devuelto no debe llamar a WsResetHeap en el montón. Esto dará como resultado un comportamiento indefinido.


El objeto message no usará el objeto del montón a menos que uno de
Se invocan las API de mensaje.


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.
El uso del montón de un mensaje vacío dará como resultado un comportamiento indefinido.
WS_MESSAGE_PROPERTY_ENVELOPE_VERSION
Valor: 2
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es el WS_ENVELOPE_VERSION del mensaje.


Al crear un mensaje mediante WsCreateMessage,
La versión del sobre se especifica como un parámetro explícito (en su lugar,
de como una propiedad).


Esta propiedad se puede especificar cuando se especifican las propiedades del mensaje mediante
estructura WS_MESSAGE_PROPERTIES .


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_ADDRESSING_VERSION
Valor: 3
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es el WS_ADDRESSING_VERSION del mensaje.


Al crear un mensaje mediante WsCreateMessage,
la versión de direccionamiento se especifica como un parámetro explícito (en su lugar,
de como una propiedad).


Esta propiedad se puede especificar cuando se especifican las propiedades del mensaje mediante
estructura WS_MESSAGE_PROPERTIES .


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_HEADER_BUFFER
Valor: 4
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un WS_XML_BUFFER que contiene los encabezados.
del mensaje (así como los elementos de sobre y cuerpo).


Este búfer es válido hasta que se restablece o libera el mensaje.


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_HEADER_POSITION
Valor: 5
Esta propiedad se usa con WsGetMessageProperty.

El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es el WS_XML_NODE_POSITION del elemento de encabezado dentro del búfer de encabezado (el elemento que contiene todo
los encabezados del mensaje como elementos secundarios). El propio búfer de encabezados puede ser
obtenido mediante WS_MESSAGE_PROPERTY_HEADER_BUFFER.


Una aplicación puede usar el WS_XML_NODE_POSITION devuelto como un inicio
punto al leer o escribir encabezados manualmente (cuando no se usa WsSetHeader,
WsGetHeader, WsGetCustomHeader o WsAddCustomHeader).
Por ejemplo, la posición se puede pasar a WsSetWriterPosition o
WsSetReaderPosition para colocar un lector XML o un escritor XML dentro del WS_XML_BUFFER que contiene los encabezados. Además:
WsMoveReader o WsMoveWriter se pueden usar para mover con relación
a la posición establecida.


Cuando se leen los encabezados de un mensaje (a través de WsReadMessageStart o
WsReadEnvelopeStart, se agrega automáticamente un elemento de encabezado al
Búfer de encabezado si uno no está presente en el mensaje que se está leyendo. Cuando se inicializa un mensaje
(a través de WsInitializeMessage), se agrega automáticamente un elemento de encabezado.
al mensaje.


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.


La posición del encabezado es válida hasta que se restablece o libera el mensaje.
WS_MESSAGE_PROPERTY_BODY_READER
Valor: 6
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un WS_XML_READER que se puede usar para leer
el cuerpo del mensaje.


El lector es propiedad del objeto de mensaje y solo es válido.
hasta que se llame a WsFreeMessage o WsResetMessage .


Esta propiedad solo está disponible cuando el mensaje es
en WS_MESSAGE_STATE_READING estado.
WS_MESSAGE_PROPERTY_BODY_WRITER
Valor: 7
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un WS_XML_WRITER que se puede usar para escribir
el cuerpo del mensaje.


Esta propiedad solo está disponible cuando el mensaje está en
WS_MESSAGE_STATE_WRITING estado.


El escritor es propiedad del objeto de mensaje y solo es válido.
hasta que se llame a WsFreeMessage o WsResetMessage .
WS_MESSAGE_PROPERTY_IS_ADDRESSED
Valor: 8
Esta propiedad se usa con WsGetMessageProperty.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un BOOL que indica si el mensaje tiene
se ha abordado.


Cuando se crea o restablece un mensaje, esta propiedad es
se establece en FALSE.


Cuando se lee un mensaje (WsReadMessageStart o
WsReadEnvelopeStart y, a continuación, esta propiedad es
se establece en TRUE.


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.


Consulte WsAddressMessage para obtener más información.
WS_MESSAGE_PROPERTY_HEAP_PROPERTIES
Valor: 9
Esta propiedad se usa con WsCreateMessage para especificar las propiedades.
del WS_HEAP asociado al mensaje.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es de tipo WS_HEAP_PROPERTIES.


El montón se usa para almacenar en búfer los encabezados del mensaje.


Se pueden especificar las siguientes propiedades del montón:


WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES
Valor: 10
Esta propiedad se usa con WsCreateMessage para especificar propiedades
que se aplican a los lectores XML que se usan con el mensaje.


El objeto de mensaje usa estas propiedades del lector XML al leer encabezados.
Además, los canales usan estas propiedades para los lectores que crean para leer
y de información.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es de tipo WS_XML_READER_PROPERTIES.


Se pueden especificar las siguientes propiedades:


WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES
Valor: 11
Esta propiedad se usa con WsCreateMessage para especificar las propiedades.
de los escritores XML que se usan con el mensaje.


El objeto message usa estas propiedades del escritor XML al escribir encabezados.
Además, los canales usan estas propiedades para los escritores que crean para escribir
y de información.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es de tipo WS_XML_WRITER_PROPERTIES.


Se pueden especificar las siguientes propiedades:


WS_MESSAGE_PROPERTY_IS_FAULT
Valor: 12
Esta propiedad se usa con WsGetMessageProperty o WsSetMessageProperty para indicar si un mensaje contiene un error.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un BOOL.

Cuando se lee un mensaje (WsReadMessageStart o WsReadEnvelopeStart),
esta propiedad se establece según si el primer elemento del cuerpo es un error.
. Una aplicación puede probar esta propiedad como una manera de decidir si
para leer el cuerpo como un error. Para leer el cuerpo como un error, use WsReadBody
con WS_FAULT_TYPE para obtener un WS_FAULT.


Cuando se escribe un mensaje (WsWriteMessageStart o WsWriteEnvelopeStart)
esta propiedad se puede usar para indicar si la aplicación escribirá o no un error.
en el cuerpo. Algunos canales usarán esta información para determinar cómo
enviar el mensaje. Por ejemplo, HTTP enviará un código de estado 500 para errores en lugar de 200.


Cuando se inicializa un mensaje mediante WsInitializeMessage con
WS_FAULT_MESSAGE, la propiedad se establece en TRUE.
Para otros valores de WS_MESSAGE_INITIALIZATION , la propiedad se establece en FALSE.


Esta propiedad está disponible en todos los estados del mensaje, excepto WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS
Valor: 13
Esta propiedad se usa con WsCreateMessage para especificar el número máximo de encabezados.
que se permitirá al procesar los encabezados del mensaje.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un ULONG.

El propósito de este límite es colocar un límite superior en el número de iteraciones.
se ha dedicado a examinar un encabezado.


Puesto que una aplicación puede modificar directamente el contenido del búfer de encabezados,
este límite no se aplica en todos los casos. Solo se aplica cuando uno de
se usan las API de acceso de encabezado (WsSetHeader, WsGetHeader,
WsGetCustomHeader o WsGetMappedHeader).


El valor predeterminado es 64.
WS_MESSAGE_PROPERTY_USERNAME
Valor: 14
Esta propiedad se usa con WsGetMessageProperty para recuperar la propiedad del remitente.
nombre de usuario de un mensaje recibido, si la seguridad basada en nombre de usuario o contraseña
está activado o si un canal personalizado ha establecido el valor.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es una estructura WS_STRING .

El valor devuelto es bueno hasta que el mensaje se libere o restablezca.


Un canal personalizado puede usar WsSetMessageProperty para establecer
el nombre de usuario del remitente del mensaje si admite el nombre de usuario o la contraseña
seguridad basada en . La función realizará una copia del valor especificado.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_ENCODED_CERT
Valor: 15
Esta propiedad se usa con WsGetMessageProperty para recuperar la propiedad del remitente.
certificado de un mensaje recibido como bytes codificados, si
Un modo de seguridad basado en certificados (como SSL) está activado,
o si un canal personalizado ha establecido el valor.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es una estructura WS_BYTES .

El valor devuelto es bueno hasta que el mensaje se libere o restablezca.


Un canal personalizado puede usar WsSetMessageProperty para establecer
El certificado del remitente de un mensaje recibido si es compatible
un modo de seguridad basado en certificados. La función realizará una copia del valor especificado.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN
Valor: 16
Esta propiedad se usa con WsGetMessageProperty para recuperar Windows.
token que representa al remitente de un mensaje recibido. Esta propiedad es
disponible en los siguientes casos:


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un HANDLE.


El valor devuelto es bueno hasta que el mensaje se libera o restablece.


Un canal personalizado puede usar WsSetMessageProperty para establecer
El certificado del remitente de un mensaje recibido si es compatible
un modo de seguridad basado en certificados. La función duplicará el identificador especificado.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN
Valor: 17
Esta propiedad se usa con WsGetMessageProperty para recuperar Windows.
token que representa al remitente de un mensaje recibido, si
WS_HTTP_HEADER_AUTH_SECURITY_BINDING se usa,
o si un canal personalizado ha establecido el valor.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un HANDLE.

El valor devuelto es bueno hasta que el mensaje se libera o restablece.


Un canal personalizado puede usar WsSetMessageProperty para establecer
token de Windows que representa al remitente de un mensaje recibido.
La función duplicará el identificador especificado.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN
Valor: 18
Esta propiedad se usa con WsGetMessageProperty para recuperar Windows.
token que representa al remitente de un mensaje recibido, si se trata de una seguridad de mensaje
se usa un enlace como WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING ,
o si un canal personalizado ha establecido el valor.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un HANDLE.

El valor devuelto es bueno hasta que el mensaje se libera o restablece.


Un canal personalizado puede usar WsSetMessageProperty para establecer
token que representa al remitente de un mensaje recibido.
La función duplicará el identificador especificado.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_SAML_ASSERTION
Valor: 19
Esta propiedad se usa con WsGetMessageProperty para recuperar la aserción de SAML.
que representa al remitente de un mensaje recibido, si
WS_SAML_MESSAGE_SECURITY_BINDING se usa en el lado servidor,
o si un canal personalizado ha establecido el valor.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un WS_XML_BUFFER.

El valor devuelto es bueno hasta que el mensaje se libera o restablece.


Un canal personalizado puede usar WsSetMessageProperty para establecer
la aserción de SAML que representa al remitente de un mensaje recibido.
La función duplicará el búfer especificado.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.
WS_MESSAGE_PROPERTY_SECURITY_CONTEXT
Valor: 20
Esta propiedad se usa con WsGetMessageProperty para recuperar el identificador de conversación segura si
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING se usa en el lado servidor.


El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un WS_SECURITY_CONTEXT.

El valor devuelto es bueno hasta que el mensaje se libera o restablece.
WS_MESSAGE_PROPERTY_PROTECTION_LEVEL
Valor: 21
Esta propiedad se usa con WsGetMessageProperty para recuperar el nivel de protección de seguridad del mensaje.

El miembro de valor adjunto de la estructura WS_MESSAGE_PROPERTY es un valor WS_PROTECTION_LEVEL .

Si el canal no usa la seguridad o si se produce un error en la comprobación de seguridad, el nivel de protección se establece en .
WS_PROTECTION_LEVEL_NONE. De lo contrario, se establece en el nivel solicitado por la aplicación.


Esta propiedad se puede usar para determinar el estado de la comprobación de seguridad cuando WS_CHANNEL_PROPERTY_ALLOW_UNSECURED_FAULTS
se establece en FALSE.


Un canal personalizado puede usar WsSetMessageProperty para establecer
el nivel de protección de un mensaje recibido.


Esta propiedad está disponible en todos los estados del mensaje, excepto
WS_MESSAGE_STATE_EMPTY.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Encabezado webservices.h