Set_Conversation_Security_Type(CPI-C)

调用程序发出 Set_Conversation_Security_Type 调用(函数名称 cmscst)以指定合作伙伴逻辑单元(LU)验证对已调用程序的访问权限所需的信息。

语法

  
CM_ENTRY Set_Conversation_Security_Type(   
  unsigned char FAR *conversation_ID,          
  CM_INT32 FAR *conversation_security_type,    
    CM_INT32 FAR *return_code                    
);  

参数

conversation_ID
提供的参数。 指定会话的标识符。 此参数的值由 Initialize_Conversation返回。

conversation_security_type
提供的参数。 指定合作伙伴 LU 验证对已调用程序的访问权限所需的信息。 根据在配置期间为调用的程序建立的对话安全性,使用以下值之一:

CM_SECURITY_NONE
指示调用的程序不使用会话安全性。

CM_SECURITY_PROGRAM
若要指示调用的程序使用会话安全性,因此需要用户标识符和密码。

CM_SECURITY_SAME
指示在向合作伙伴 LU 中的节点服务分配请求上发送用户 ID。 此设置还用于指定调用的程序(使用有效的用户标识符和密码调用),进而调用另一个程序(如 TP 之间的通信所示)。 例如,假设程序 A 调用具有有效用户标识符和密码的程序 B,而程序 B 又调用程序 C。如果程序 B 指定值CM_SECURITY_SAME,CPI-C 将发送程序 C 的 LU、程序 A 中的用户标识符和已验证的指示器。 此指示器告知程序 C 不需要密码(如果程序 C 配置为接受已验证的指示器)。

使用CM_SECURITY_SAME时,应用程序必须始终调用 Set_Conversation_Security_User_IDSet_Conversation_Security_Password 来提供 security_user_IDsecurity_password 参数的值。 根据 SNA 服务器和对等 LU 之间协商的属性, Allocate 函数将按优先顺序发送 3 种附加(FMH-5)消息之一:

  1. 如果 RU 已协商已验证安全性,SNA 服务器发送的附加将不包括由Set_Conversation_Security_Password指定的security_password参数字段的内容。

  2. 如果 LU 协商了持久性验证安全性,则 SNA 服务器发送的附加将包含由Set_Conversation_Security_Password指定的security_password参数,但前提是附加是自 LU-LU 会话开始以来由Set_Conversation_Security_User_ID设置的指定security_user_ID参数的第一个,并且将忽略所有后续附加(由应用程序或使用的任何其他应用程序颁发的)security_password参数此 LU-LU 模式三重项)。

  3. 应用程序无法判断 RU 之间已协商了哪种安全模式,也不能判断它正在发出的 分配 函数是否为该 LU-LU 模式的三元组的第一个。 因此,当conversation_security_type设置为CM_SECURITY_SAME时,应用程序必须始终调用Set_Conversation_Security_User_ID和Set_Conversation_Security_Password来设置security_user_ID和security_password参数。

    有关持久验证和已验证的安全性的详细信息,请参阅 SNA 格式指南,部分“FM 标头 5:附加(LU 6.2)。

    如果要使用 CPI-C 自动登录功能,则必须将此参数设置为CM_SECURITY_PROGRAM。 有关详细信息,请参阅本主题后面的“备注”部分。

    return_code
    从此调用返回的代码。 本主题后面列出了有效的返回代码。

返回代码

CM_OK
主要返回代码;调用已成功执行。

CM_PROGRAM_STATE_CHECK
主要返回代码;会话未处于 INITIALIZE 状态。

CM_PROGRAM_PARAMETER_CHECK
主要返回代码; 由conversation_IDconversation_security_type 指定的值无效。

CM_PRODUCT_SPECIFIC_ERROR
主要返回代码;发生了特定于产品的错误,并且已记录在产品错误日志中。

状态更改

会话必须处于 INITIALIZE 状态。

没有状态更改。

注解

此调用从 Initialize_Conversation指定的侧信息替代初始安全类型。 发出 “分配 ”后,无法发出此调用。

如果会话安全类型设置为CM_SECURITY_NONE,则分配会话时将忽略用户标识符和密码。

CM_SECURITY_SAME的对话安全类型适用于具有相同用户 ID 集的节点之间,以及接受在一个节点上执行的用户验证,以验证所有节点的用户。 此例中不使用密码,但用户 ID 的初始验证除外。

Host Integration Server 支持 CPI-C 应用程序的自动登录。 此功能需要网络管理员的特定配置。 必须从 SNA 服务器的客户端在 LAN 端调用 CPI-C 应用程序。 客户端必须登录到 Microsoft Windows 域,但可以是支持 SNA Server CPI-C API 的任何平台。

客户端应用程序编码为使用程序级别安全性,具有特殊的硬编码 CPI-C 用户名 MS$SAME 和密码 MS$SAME。 当此会话分配从客户端流向 SNA 服务器时,SNA 服务器将查找与登录客户端所依据的 Windows 帐户对应的主机帐户和密码,并将主机帐户信息替换为它发送到主机的 APPC 附加消息。