使用不同用户的Websphere MQ 7 C#XMS连接

时间:2011-09-05 16:27:00

标签: c# .net websphere ibm-mq mq

我一直在使用XMS API连接到Websphere MQ,并使用以下代码我可以正常连接:

    private IConnection CreateWqmConnection() 
    {
        // Create the connection factories factory using WMQ (websphere message queue)
        XMSFactoryFactory factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);

        // Use the connection factories factory to create a connection factory
        IConnectionFactory cf = factoryFactory.CreateConnectionFactory();

        // Set the properties

        cf.SetStringProperty(XMSC.USERID, @"user");
        cf.SetStringProperty(XMSC.PASSWORD, @"password");

        cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, MessageQueueManager);
        cf.SetStringProperty(XMSC.WMQ_HOST_NAME, MessageQueueHost);
        cf.SetIntProperty(XMSC.WMQ_PORT, MessageQueuePort);
        cf.SetStringProperty(XMSC.WMQ_CHANNEL, MessageQueueChannel);
        cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
        cf.SetStringProperty(XMSC.CLIENT_ID, UniqueClientId);

        return cf.CreateConnection();            
    }

但是,如果我尝试将用户名和密码更改为我当前登录的用户以外的任何人,因为我收到了2035安全错误。我已登录到主机并将用户添加到mqm组,我可以使用WMQ Explorer从本地计算机使用此用户进行连接并发布消息,而不是使用XMS。

此外,我发现如果我在此用户帐户下调试程序,我可以连接,所以看起来我不能作为一个用户运行并作为另一个用户进行身份验证。这是XMS的情况吗?有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:3)

XMS始终使用登录的用户ID进行队列管理器身份验证。该行为与WebSphere MQ C客户端类似。有关替代方案的详细信息,请参阅this page in the Infocenter