gpt4 book ai didi

c# - MQ .NET 程序集 MQC.USER_ID_PROPERTY 是否被忽略?

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:22 27 4
gpt4 key购买 nike

我目前正在使用 MQ .NET 程序集,并试图读取各种队列的队列深度以供监视应用程序使用。我们的代码在 Java 中运行,但我们的新应用程序是在 C# 中,最好将所有这些逻辑保留在同一个应用程序中。

据我在网上听到的消息,.NET 程序集忽略 MQC.USER_ID_PROPERTY 而是使用运行该应用程序的用户 ID。真的没有办法覆盖这个吗?这似乎是一个非常奇怪的功能/错误。我知道 MQC.TRANSPORT_PROPERTY 应该会影响 UserID 的推断方式,但是我是设置为 MQC.TRANSPORT_MQSERIES_MANAGED 还是 MQC .TRANSPORT_MQSERIES_CLIENT,我在 Wireshark 中看到相同的 ID 并返回相同的错误 (MQRC_NOT_AUTHORIZED)。有没有其他人找到解决这个相当大的问题的方法?

properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
properties.Add(MQC.PORT_PROPERTY, port);
properties.Add(MQC.CHANNEL_PROPERTY, channelName);
properties.Add(MQC.USER_ID_PROPERTY, userId);
properties.Add(MQC.PASSWORD_PROPERTY, "");

// create connection
queueManager = new MQQueueManager(queueManagerName, properties);

最佳答案

如果您使用的是 v8 之前的 MQ .NET 客户端(或者 MQ C 客户端),应用程序设置的用户 ID 不会发送到队列管理器。而是将登录的用户 ID 传递给队列管理器进行身份验证。这是 v8 之前的 MQ 版本的已知行为。

您可以开发和使用所谓的安全导出 来执行用户身份验证。安全导出针对存储库执行用户名和密码身份验证,例如 MQ 服务器上的本地操作系统或 LDAP 存储库。

如果适合,您也可以使用 SSL/TLS。否则,您可以升级到使用 MQ v8 来使用开箱即用的用户 ID/密码身份验证。

关于c# - MQ .NET 程序集 MQC.USER_ID_PROPERTY 是否被忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33679175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com