美文网首页
第四十章 SOAP 会话管理

第四十章 SOAP 会话管理

作者: Cache技术分享 | 来源:发表于2024-06-26 08:14 被阅读0次

    第四十章 SOAP 会话管理

    SOAP Web 服务本质上是无状态的,因此不维护会话。但是,在 Web 客户端和它使用的 Web 服务之间维护会话通常很有用。 数据平台 SOAP 支持为提供了这样做的方法。

    SOAP 会话概述

    可以在 Web 客户端和 Web 服务之间维护会话。此支持包括以下工具:

    • Web 会话管理
    • SOAP 会话标头,它是一个简单的专有标头。

    总体流程如下:

    1. Web 客户端向 Web 服务发送初始消息。此消息不包含 SOAP 会话标头。
    2. Web 服务接收消息并启动新的 Web 会话。
    3. Web 服务发送其答复时,它会将 SOAP 会话标头添加到消息中。
    4. Web 客户端收到回复时,它必须检测 SOAP 会话标头并提取会话 cookie。然后,当 Web 客户端发送另一条消息时,它必须使用该 cookie 在该消息中创建 SOAP 会话标头。

    注意:

    • 如果客户端是 Web 客户端,则会话 cookie 会自动保存在 Web 客户端的 SessionCookie 属性中。此外,客户端实例还会自动创建 SOAP 会话标头并将其包含在其发送的所有消息中。
    • 如果会话中的所有 SOAP 消息都使用同一个客户端实例,则此步骤也会自动发生在 .NET Web 客户端上。可能需要针对其他客户端平台编写更多代码。
    1. Web 服务收到下一个回复,继续 Web 会话,并在响应时再次包含 SOAP 会话标头。

    无需包含注销方法。Web 会话会在短暂的间隔后超时(Web 应用程序的超时期限)。

    启用会话

    为了使用 对 SOAP 会话的支持,必须使用 Web 服务。

    • 如果 Web 客户端基于 IRIS,则只需一步即可启用 SOAP 会话支持。在Web 服务类中,将 SOAPSESSION 参数设置为 1
    • 如果使用第三方工具创建 Web 客户端,则有责任检测初始响应中的 SOAP 会话标头元素,并确保 Web 客户端在会话生命周期内的所有请求中都包含此标头元素。此标头元素的格式如下:
    <csp:CSPCHD xmlns:csp="https://www.intersystems.com/SOAPheaders"><id>value of CSPCHD token</id></csp:CSPCHD> 
    

    使用会话信息

    启用会话后,Web 服务可以使用变量 %session,它是 %CSP.Session的一个实例。此对象的属性包含系统信息以及选择添加的任何信息。一些常用的属性如下:

    • SessionID — 此会话的唯一标识符。
    • EndSession — 通常等于 0。将此属性设置为 1 以结束会话。
    • Data — 多维数组,用于保存任何自定义数据。
    • NewSession — 如果这是新会话,则等于 1
    • AppTimeout — 指定会话的超时值(以秒为单位)。

    %session 对象提供了许多其他属性,以及一些与会话相关的任务方法。有关更多详细信息,请参阅 %CSP.Session的类文档。

    相关文章

      网友评论

          本文标题:第四十章 SOAP 会话管理

          本文链接:https://www.haomeiwen.com/subject/kaajcjtx.html