安全上下文

安全上下文支持根据 WS-SecureConversation 建立消息安全上下文。 然后,该上下文可用于保护消息,作为一次性安全性的替代方法,在该安全性中为每个请求传输凭据。 已建立的安全上下文是在交换多个消息时保护消息的更有效方法。

安全上下文要求存在用于保护上下文中发送的消息的启动安全凭据。 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDINGWS_XML_TOKEN_MESSAGE_SECURITY_BINDINGWS_USERNAME_MESSAGE_SECURITY_BINDING结构可用于此目的。

安全上下文是一项消息安全功能,通过消息安全绑定进行配置。

客户端

在客户端,安全上下文绑定到特定通道。 它是使用 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING配置的。 上下文的行为和生存期由通道决定。 在通道上发送第一条消息时,将建立安全上下文。 之后,上下文会以可配置的时间间隔主动续订。 如果服务器返回错误,指示上下文需要续订,则在发送下一条消息时将续订上下文。 如果通道处于打开状态,则关闭通道时,会通过取消消息取消上下文。

服务器

在服务器上,安全上下文的配置方式与在客户端上的配置方式相同。 但是,它不绑定到任何特定通道。 相反,为具有 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING 集的侦听器创建的所有通道都能够接收具有在该侦听器通道上建立的任何安全上下文的消息。

当消息到达支持安全上下文的通道时,该消息使用的上下文可以通过使用 WS_MESSAGE_PROPERTY_SECURITY_CONTEXT调用 WsGetMessageProperty 函数来获取。 检索到的值可以与 WsRevokeSecurityContextWsGetSecurityContextProperty 一起使用。

元数据

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT 结构用于从元数据中提取安全上下文策略。 有关详细信息,请参阅 元数据导入

以下 API 元素用于安全上下文。

枚举 描述
WS_SECURITY_CONTEXT_PROPERTY_ID 标识安全上下文对象的属性。

 

函数 说明
WsGetSecurityContextProperty 获取指定安全上下文的属性。
WsRevokeSecurityContext 撤销安全上下文。

 

Handle 说明
WS_SECURITY_CONTEXT 用于引用安全上下文对象的不透明类型。

 

结构 说明
WS_SECURITY_CONTEXT_PROPERTY 定义 WS_SECURITY_CONTEXT的属性。