WsCreateXmlSecurityToken 函数 (webservices.h)

从其指定的 XML 窗体创建安全令牌。

语法

HRESULT WsCreateXmlSecurityToken(
  [in]           WS_XML_BUFFER                        *tokenXml,
  [in, optional] WS_SECURITY_KEY_HANDLE               *tokenKey,
                 const WS_XML_SECURITY_TOKEN_PROPERTY *properties,
  [in]           ULONG                                propertyCount,
                 WS_SECURITY_TOKEN                    **token,
  [in, optional] WS_ERROR                             *error
);

参数

[in] tokenXml

指向 WS_XML_BUFFER 结构的指针,该结构包含其 XML 形式的安全令牌。 引用的缓冲区必须恰好有一个顶级 XML 元素。

[in, optional] tokenKey

指向可能包含或不包含加密所有权证明密钥 的SECURITY_KEY_HANDLE 结构的指针。 如果存在,可以使用密钥将此安全令牌绑定到消息。 如果 tokenKey 参数的值不是 NULL,则假定令牌具有所有权证明密钥。 如果值为 NULL,则假定结构是如下定义的“持有者令牌”。

  • 在消息中序列化也称为基本令牌或无密钥令牌的持有者令牌,以证明消息拥有令牌,并指示打算将令牌中的声明应用于该消息。
  • 所有权证明令牌(也称为 PoP 或加密令牌)具有关联的加密密钥,必须使用该密钥对消息进行“签名”,以表明拥有令牌,并指示打算将令牌中的声明应用于该消息。 例如,X.509 证书:必须使用证书的私钥对消息进行签名,以便接收主体接受包含证书中存在的声明的消息。

properties

包含 XML 安全令牌的可选属性 的WS_XML_SECURITY_TOKEN_PROPERTY 结构的数组。

此参数的值可以为 NULL,在这种情况下, propertyCount 参数必须为 0 (零) 。

[in] propertyCount

properties 数组中的 属性 数。

token

成功时,一个指针,用于接收表示所创建的 XML 安全令牌 的WS_SECURITY_TOKEN 结构的地址。

如果不再需要此结构,则必须通过调用 WsFreeSecurityToken 来释放它。

返回的安全令牌可以与 WS_XML_TOKEN_MESSAGE_SECURITY_BINDING 一起使用(如果)

呈现给服务。

[in, optional] error

指向 WS_ERROR 结构的指针,该结构在函数失败时接收其他错误信息。

返回值

如果函数成功,则返回NO_ERROR;否则,它将返回 HRESULT 错误代码。

返回代码 说明
E_INVALIDARG
一个或多个参数无效。
E_OUTOFMEMORY
内存不足,无法完成操作。
其他错误
此函数可能会返回上面未列出的其他错误。

要求

   
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll