WS_MESSAGE_PROPERTY_ID 枚举 (webservices.h)

每个消息属性的类型为 WS_MESSAGE_PROPERTY,由 ID 标识,并具有关联的值。

语法

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;

常量

 
WS_MESSAGE_PROPERTY_STATE
值: 0
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是消息的当前WS_MESSAGE_STATE

此属性在所有消息状态中都可用。
WS_MESSAGE_PROPERTY_HEAP
值:1
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是消息的WS_HEAP。 堆为
由消息拥有。 消息的用户可以自由地进行其他操作
此堆中的分配。 释放堆中的分配
重置/释放消息时。


返回的堆的用户不应对堆调用 WsResetHeap 。 这将导致未定义的行为。


消息对象不会使用堆对象,除非
调用消息 API。


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。
使用空消息的堆将导致未定义的行为。
WS_MESSAGE_PROPERTY_ENVELOPE_VERSION
值: 2
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是消息的WS_ENVELOPE_VERSION


使用 WsCreateMessage 创建消息时,
将信封版本指定为显式参数 (
作为属性) 的 。


当使用 指定消息属性时,可以指定此属性
WS_MESSAGE_PROPERTIES 结构。


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。
WS_MESSAGE_PROPERTY_ADDRESSING_VERSION
值: 3
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是消息的WS_ADDRESSING_VERSION


使用 WsCreateMessage 创建消息时,
将寻址版本指定为显式参数 (
作为属性) 的 。


当使用 指定消息属性时,可以指定此属性
WS_MESSAGE_PROPERTIES 结构。


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。
WS_MESSAGE_PROPERTY_HEADER_BUFFER
值: 4
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是保存标头的WS_XML_BUFFER
消息 (以及信封和正文元素) 。


在重置/释放消息之前,此缓冲区有效。


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。
WS_MESSAGE_PROPERTY_HEADER_POSITION
值: 5
此属性与 WsGetMessageProperty 一起使用。

WS_MESSAGE_PROPERTY 结构随附的值成员是标头缓冲区中标头元素 (包含所有元素的标头元素WS_XML_NODE_POSITION
作为子) 的消息标头。 标头缓冲区本身可以是
使用 WS_MESSAGE_PROPERTY_HEADER_BUFFER 获取。


应用程序可以使用返回 的WS_XML_NODE_POSITION 作为启动
不使用 WsSetHeader 时,手动读取或写入标头时 (点,
WsGetHeaderWsGetCustomHeaderWsAddCustomHeader) 。
例如,位置可以传递给 WsSetWriterPosition
WsSetReaderPosition 用于将 XML 读取器XML 编写器 定位在包含标头 的WS_XML_BUFFER 中。 另外,
WsMoveReaderWsMoveWriter 可用于移动相对
设置为已设置的位置。


当通过 WsReadMessageStart 或 (读取邮件头时
WsReadEnvelopeStart,标头元素会自动添加到
标头缓冲区(如果正在读取的消息中不存在)。 初始化消息时
(通过 WsInitializeMessage) ,会自动添加标头元素
到消息。


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。


标头位置在重置或释放消息之前有效。
WS_MESSAGE_PROPERTY_BODY_READER
值: 6
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是可用于读取的WS_XML_READER
消息正文。


读取器归消息对象所有,并且仅有效
直到调用 WsFreeMessageWsResetMessage


仅当消息为 时,此属性才可用
处于 WS_MESSAGE_STATE_READING 状态。
WS_MESSAGE_PROPERTY_BODY_WRITER
值: 7
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是可用于写入的WS_XML_WRITER
消息正文。


此属性仅在消息位于
WS_MESSAGE_STATE_WRITING 状态。


编写器归消息对象所有,并且仅有效
直到调用 WsFreeMessageWsResetMessage
WS_MESSAGE_PROPERTY_IS_ADDRESSED
值: 8
此属性与 WsGetMessageProperty 一起使用。


WS_MESSAGE_PROPERTY 结构随附的值成员是一个 BOOL,指示消息是否具有
已解决。


创建或重置消息时,此属性为
设置为 FALSE


当 (WsReadMessageStart
WsReadEnvelopeStart,则此属性为
设置为 TRUE


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。


有关详细信息 ,请参阅 WsAddressMessage
WS_MESSAGE_PROPERTY_HEAP_PROPERTIES
值: 9
此属性与 WsCreateMessage 一起使用以指定属性
与消息关联的 WS_HEAP


WS_MESSAGE_PROPERTY 结构随附的值成员的类型为 WS_HEAP_PROPERTIES


堆用于缓冲消息的标头。


可以指定以下堆属性:


WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES
值: 10
此属性与 WsCreateMessage 一起使用以指定属性
适用于与消息一起使用的 XML 读取器


这些 XML 读取器属性在读取标头时由消息对象使用。
此外,通道为它们创建的读取器使用这些属性进行读取
消息。


WS_MESSAGE_PROPERTY 结构随附的值成员的类型为 WS_XML_READER_PROPERTIES


可以指定以下属性:


WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES
值: 11
此属性与 WsCreateMessage 一起使用以指定属性
与消息一起使用的 XML 编写器


这些 XML 编写器属性在写入标头时由消息对象使用。
此外,通道使用它们创建的编写器要写入的这些属性
消息。


WS_MESSAGE_PROPERTY 结构附带的值成员的类型为 WS_XML_WRITER_PROPERTIES


可以指定以下属性:


WS_MESSAGE_PROPERTY_IS_FAULT
值: 12
此属性与 WsGetMessagePropertyWsSetMessageProperty 一起使用,以指示消息是否包含错误。


WS_MESSAGE_PROPERTY 结构随附的值成员是 BOOL

当 (WsReadMessageStartWsReadEnvelopeStart) 读取消息时,
此属性根据正文的第一个元素是否为错误进行设置
元素内添加以下元素。 应用程序可以测试此属性,以确定是否
将正文读作错误。 若要将正文读取为错误,请使用 WsReadBody
使用 WS_FAULT_TYPE 获取 WS_FAULT


将消息写入 (WsWriteMessageStartWsWriteEnvelopeStart)
此属性可用于指示应用程序是否会写入错误
在正文中。 某些频道会使用此信息来确定如何
发送消息。 例如,HTTP 将为错误发送 500 状态代码,而不是 200。


使用 WsInitializeMessage 初始化消息时
WS_FAULT_MESSAGE, 属性设置为 TRUE
对于其他 WS_MESSAGE_INITIALIZATION 值, 属性设置为 FALSE


此属性可用于除 WS_MESSAGE_STATE_EMPTY之外的所有消息状态。
WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS
值: 13
此属性与 WsCreateMessage 一起使用,以指定最大标头数
在处理消息头时允许的 。


WS_MESSAGE_PROPERTY 结构附带的值成员是 ULONG

此限制的目的是为迭代次数设置上限
扫描标头所用的时间。


由于应用程序可以直接修改标头缓冲区的内容,
并非在所有情况下都强制实施此限制。 仅当以下项之一时,才强制实施
标头访问 API (WsSetHeaderWsGetHeader
WsGetCustomHeaderWsGetMappedHeader) 。


默认值为 64。
WS_MESSAGE_PROPERTY_USERNAME
值: 14
此属性与 WsGetMessageProperty 一起使用,以检索发件人的
收到消息的用户名(如果基于用户名/密码的安全性)
为 on,或者如果自定义通道已设置值,则为 。


WS_MESSAGE_PROPERTY 结构随附的值成员是WS_STRING结构。

在释放或重置消息之前,返回的值是好的。


自定义通道可以使用 WsSetMessageProperty 来设置
来自邮件的发件人用户名(如果它支持用户名/密码)
基于安全性。 该函数将创建指定值的副本。


此属性在所有消息状态中均可用,但除外
WS_MESSAGE_STATE_EMPTY
WS_MESSAGE_PROPERTY_ENCODED_CERT
值: 15
此属性与 WsGetMessageProperty 一起使用,以检索发件人的
从收到的消息获取的证书作为编码字节,如果
基于证书的安全模式 (,例如 SSL) ,
如果自定义通道已设置值,则为 。


WS_MESSAGE_PROPERTY 结构附带的值成员是WS_BYTES结构。

在释放或重置消息之前,返回的值是好的。


自定义通道可以使用 WsSetMessageProperty 来设置
来自接收消息的发件人证书(如果支持)
基于证书的安全模式。 该函数将创建指定值的副本。


此属性在所有消息状态中均可用,但除外
WS_MESSAGE_STATE_EMPTY
WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN
值: 16
此属性与 WsGetMessageProperty 一起使用以检索 Windows
表示来自接收消息的发件人的令牌。 此属性为
在以下情况下可用:


WS_MESSAGE_PROPERTY 结构的附带成员是 HANDLE


在释放或重置消息之前,返回的值正常。


自定义通道可以使用 WsSetMessageProperty 进行设置
接收的消息中的发件人证书(如果支持)
基于证书的安全模式。 函数将复制指定的句柄。


此属性在所有消息状态中可用,但除外
WS_MESSAGE_STATE_EMPTY
WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN
值: 17
此属性与 WsGetMessageProperty 一起使用以检索 Windows
表示来自接收消息的发件人的令牌,如果 为
使用WS_HTTP_HEADER_AUTH_SECURITY_BINDING
或者,如果自定义通道已设置值,则为 。


WS_MESSAGE_PROPERTY 结构的附带成员是 HANDLE

在释放或重置消息之前,返回的值正常。


自定义通道可以使用 WsSetMessageProperty 进行设置
表示从收到的消息发送方的 Windows 令牌。
函数将复制指定的句柄。


此属性在所有消息状态中可用,但除外
WS_MESSAGE_STATE_EMPTY
WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN
值: 18
此属性与 WsGetMessageProperty 一起使用以检索 Windows
如果消息安全,则表示来自接收消息的发件人的令牌
使用 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING 等绑定,
或者,如果自定义通道已设置值,则为 。


WS_MESSAGE_PROPERTY 结构的附带成员是 HANDLE

在释放或重置消息之前,返回的值正常。


自定义通道可以使用 WsSetMessageProperty 进行设置
表示从收到的消息发送方的令牌。
函数将复制指定的句柄。


此属性在所有消息状态中可用,但除外
WS_MESSAGE_STATE_EMPTY
WS_MESSAGE_PROPERTY_SAML_ASSERTION
值: 19
此属性与 WsGetMessageProperty 一起使用,以检索 SAML 断言
表示来自已接收邮件的发件人,如果
WS_SAML_MESSAGE_SECURITY_BINDING 在服务器端使用,
或者,如果自定义通道已设置值,则为 。


WS_MESSAGE_PROPERTY 结构的附带成员是一个WS_XML_BUFFER

在释放或重置消息之前,返回的值正常。


自定义通道可以使用 WsSetMessageProperty 进行设置
表示从收到的消息发送方的 SAML 断言。
函数将复制指定的缓冲区。


此属性在所有消息状态中可用,但除外
WS_MESSAGE_STATE_EMPTY
WS_MESSAGE_PROPERTY_SECURITY_CONTEXT
值: 20
此属性与 WsGetMessageProperty 一起使用,以检索安全会话句柄(如果 为
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING 在服务器端使用。


WS_MESSAGE_PROPERTY 结构的附带成员是WS_SECURITY_CONTEXT

在释放或重置消息之前,返回的值正常。
WS_MESSAGE_PROPERTY_PROTECTION_LEVEL
值: 21
此属性与 WsGetMessageProperty 一起使用,以检索消息的安全保护级别。

WS_MESSAGE_PROPERTY 结构的附带成员是WS_PROTECTION_LEVEL值。

如果通道不使用安全性,或者安全验证失败,则保护级别设置为
WS_PROTECTION_LEVEL_NONE。 否则,它设置为应用程序请求的级别。


此属性可用于在WS_CHANNEL_PROPERTY_ALLOW_UNSECURED_FAULTS时确定安全验证的状态
设置为 FALSE


自定义通道可以使用 WsSetMessageProperty 进行设置
收到的消息的保护级别。


此属性在所有消息状态中可用,但除外
WS_MESSAGE_STATE_EMPTY

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
标头 webservices.h