【问题标题】:how to connect to IBM Websphere MQ with a specific user using C#如何使用 C# 与特定用户连接到 IBM Websphere MQ
【发布时间】:2017-09-04 16:48:22
【问题描述】:

我必须从客户端连接到 MQ 服务器。服务器 MQ 以用户“admin”运行。如何使用 .net 从具有特定用户“管理员”的客户端连接到服务器? ,我将使用我的本地凭据运行代码。有没有办法做到这一点?我正在使用 MQ 服务器和客户端 8.0.0.6,Win server 2008 R2。 “管理员”用户在服务器中没有任何密码。我使用下面的代码与用户联系

对此进行更新 - 现在我有了用户 ID 和密码,尝试连接时会引发 2035 错误。

Hashtable props = new Hashtable();
props.Add(MQC.HOST_NAME_PROPERTY, "10.136.232.46");
props.Add(MQC.CHANNEL_PROPERTY, channelName); 
props.Add(MQC.PORT_PROPERTY, 1414); 
port number props.Add(MQC.USER_ID_PROPERTY, "mqchluser");
props.Add(MQC.PASSWORD_PROPERTY, "mqchluser");
props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT); 
MQQueueManager queueManager = null;
queueManager = new MQQueueManager(QueueManagerName,props );

【问题讨论】:

  • 以用户身份连接 MQ 队列管理器运行不是一个好主意,因为这意味着应用程序具有完整的 MQ 管理员权限,这是您想要的吗?如果它是一个只需要访问队列子集的应用程序,那么您应该创建一个特定于该应用程序的用户并授予它访问所需队列的权限。这个用途应该有一个密码,以便您可以通过发送 id 和 pw 从客户端进行身份验证。
  • 我只需要访问 MQ 服务器中的队列即可。添加另一个用户不在图片中。有没有办法使用运行 MQ 服务器的用户(来自客户端的“Admin”)连接到 MQ 服务器? MQ 服务器和客户端在不同的机器上,但在同一个网络中
  • 我使用了一个有用户名和密码的用户,如果我现在运行我得到 2035 错误。我在这里缺少什么?
  • 请将评论中的详细信息添加到您的问题下面的答案中,我会写一个包含详细信息的答案。
  • 您可以通过缩进 4 个空格来格式化代码和错误块,这比在评论中混乱的可读性要高得多。您是否还可以检查队列管理器 AMKERR01.LOG 以了解您收到 2035 的原因。可能是因为密码身份验证失败,也可能是您没有为新用户提供 OAM 权限。

标签: c# ibm-mq


【解决方案1】:

您可以使用连接身份验证作为特定用户进行身份验证。在 MQEnvironment 类中有一个 UserId 和 Password 属性:

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.ref.dev.doc/q111180_.htm

但您连接的队列管理器也需要正确配置,以便启用连接身份验证,并使用经过身份验证的用户 ID 进行授权检查。此外,还需要配置通道认证记录以允许管理员连接。

【讨论】:

  • 这里MQ服务器中的用户没有密码,只有用户名。当我使用onlu用户id时,它显示空引用,因为没有密码。如果我输入任何随机密码,它不会对用户进行身份验证。
  • 如果我为 MQ 服务器创建用户和密码,应该授予服务器或队列管理器的访问权限以使连接成功?
猜你喜欢
  • 2012-03-09
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多