MQZIC-身份上下文

MQZIC 结构用于 IdentityContext 参数的 MQZ_AUTHENTICATE_USER 调用。

MQZIC 结构包含身份上下文信息,用于标识首先将消息放入队列的应用程序的用户:
  • 队列管理器使用标识用户的名称填充 UserIdentifier 字段,队列管理器执行此操作的方式取决于运行应用程序的环境。
  • 队列管理器使用从放置消息的应用程序中确定的令牌或数字来填充 AccountingToken 字段。
  • 应用程序可将ApplIdentityData字段用于包含任何有关用户的额外信息(例如加密密码)。
经过适当授权的应用程序可以使用 MQZ_AUTHENTICATE_USER 函数来设置身份上下文。

IBM® MQ for Windows下创建消息时, Windows 系统安全标识 (SID) 存储在 AccountingToken 字段中。 SID 可用于补充 UserIdentifier 字段并建立用户的凭证。

字段

StrucId (MQCHAR4)
结构标识。
值为:
MQZIC_STRUC_ID
身份上下文结构的标识。

对于 C 编程语言,还定义了常量 MQZIC_STRUC_ID_ARRAY; 此值与 MQZIC_STRUC_ID 相同,但是字符数组而不是字符串。

这是服务的输入字段。
Version (MQLONG)
结构版本号。
值为:
MQZIC_VERSION_1
Version-1 身份上下文结构。
以下常量指定当前版本的版本号:
MQZIC_CURRENT_VERSION
当前版本的身份上下文结构。

这是服务的输入字段。

UserIdentifier (MQCHAR12)
用户标识。

这是消息的 身份上下文 的一部分。

UserIdentifier 指定发起消息的应用程序的用户标识。 队列管理器将此信息视为字符数据,但不定义其格式。 有关 UserIdentifier 字段的更多信息,请参阅 UserIdentifier (MQCHAR12)

AccountingToken (MQBYTE32)
记帐标记。

这是消息的 身份上下文 的一部分。

AccountingToken 允许应用程序将由于消息而完成的工作相应地收费。 队列管理器将此信息视为位字符串,并且不检查其内容。 有关 AccountingToken 字段的更多信息,请参阅 AccountingToken (MQBYTE32)

ApplIdentityData (MQCHAR32)
与身份相关的应用程序数据。

这是消息的 身份上下文 的一部分。

ApplIdentityData 是应用程序套件定义的信息,可用于提供有关消息源的其他信息。 例如,它可以由使用适当用户权限运行的应用程序设置,以指示身份数据是否可信。 有关 "ApplIdentityData字段的更多信息,请参阅ApplIdentityData(MQCHAR32)

C 声明

typedef struct tagMQZED MQZED;
struct tagMQZED {
  MQCHAR4   StrucId;          /* Structure identifier */
  MQLONG    Version;          /* Structure version number */
  MQCHAR12  UserIdentifier;   /* User identifier */
  MQBYTE32  AccountingToken;  /* Accounting token */
  MQCHAR32  ApplIdentityData; /* Application data relating to identity */
};