MQZ_AUTHENTICATE_USER-认证用户
此函数由 MQZAS_VERSION_5 授权服务组件提供。 它由队列管理器调用以认证用户或设置身份上下文字段。
在建立 IBM® MQ 用户应用程序上下文时调用此参数。 在初始化应用程序的用户上下文的点以及更改应用程序的用户上下文的每个点的连接调用期间都会发生此情况。 每次发出连接调用时,都会在 IdentityContext 字段中重新获取应用程序的用户上下文信息。
此函数 (针对 MQZEP) 的函数标识为 MQZID_AUTHENTICATE_USER。
语法
- MQZ_AUTHENTICATE_USER
(QMgrName, SecurityParms, ApplicationContext, IdentityContext, CorrelationPtr, ComponentData, Continuation, CompCode, Reason)
参数
MQZ_AUTHENTICATE_USER 调用具有以下参数。
- QMgrName (MQCHAR48)-输入
- 队列管理器名称。
调用组件的队列管理器的名称。 此名称将用空格填充到参数的完整长度; 该名称未以空字符终止。 队列管理器名称将传递给组件以获取信息; 授权服务接口不要求组件以任何定义的方式使用该名称。
- SecurityParms (MQCSP)-输入
- 安全性参数。
与用户标识,密码和认证类型相关的数据。
在 MQCONN MQI 调用期间,此参数包含空值或缺省值。
- ApplicationContext (MQZAC)-输入
- 应用程序上下文。
与调用应用程序相关的数据。 请参阅 MQZAC-应用程序上下文 以获取详细信息。 在每次 MQCONN 或 MQCONNX MQI 调用期间,都会重新获取 MQZAC 结构中的用户上下文信息。
- IdentityContext (MQZIC)-输入/输出
- 身份上下文。
在向认证用户函数输入时,这将标识当前身份上下文。 认证用户功能可以对此进行更改,此时队列管理器将采用新的身份上下文。 有关 MQZIC 结构的更多详细信息,请参阅 MQZIC-身份上下文 。
- CorrelationPtr (MQPTR)-输出
- 关联指针。
指定任何关联数据的地址。 然后将此指针传递到其他 OAM 调用。
- ComponentData(MQBYTE xComponentDataLength) - 输入/输出
- 组件数据。
此数据由队列管理器代表此特定组件保存; 此组件提供的任何函数对其进行的任何更改都将保留,并在下次调用其中一个组件函数时显示。 此数据区的长度由队列管理器在 MQZ_INIT_AUTHORITY 调用的
ComponentDataLength参数中传递。 - 连续 (MQLONG)-输出
- 延续标志。可以指定以下值:
- MQZCI_DEFAULT
- 依赖于其他组件的延续。
- MQZCI_STOP
- 请勿继续使用下一个组件。
- CompCode (MQLONG)-输出
- 完成代码。它是下列项之一:
- MQCC_OK
- 成功完成。
- MQCC_FAILED
- 调用失败。
- 原因 (MQLONG)-输出
- 原因码限定
CompCode。如果CompCode为 MQCC_OK:- MQRC_NONE
- (0, X'000') 没有要报告的原因。
如果CompCode为 MQCC_FAILED:- mqrc_service_error
- (2289,X'8F1')访问服务时发生意外错误。
有关这些原因码的更多信息,请参阅 消息和原因码。
C 调用
MQZ_AUTHENTICATE_USER (QMgrName, SecurityParms, ApplicationContext,
IdentityContext, &CorrelationPtr, ComponentData,
&Continuation, &CompCode, &Reason);
MQCHAR48 QMgrName; /* Queue manager name */
MQCSP SecurityParms; /* Security parameters */
MQZAC ApplicationContext; /* Application context */
MQZIC IdentityContext; /* Identity context */
MQPTR CorrelationPtr; /* Correlation pointer */
MQBYTE ComponentData[n]; /* Component data */
MQLONG Continuation; /* Continuation indicator set by
component */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Reason code qualifying CompCode */