【问题标题】:SystemServerCAMSecurityRequired error when authenticating using Cognos使用 Cognos 进行身份验证时出现 SystemServerCAMSecurityRequired 错误
【发布时间】:2014-01-24 15:49:19
【问题描述】:

我正在使用 Cognos TM1 10.1 API 连接到服务器。服务器使用 Cognos 进行身份验证,然后使用集成登录根据我们的 Active Directory 实例对用户进行身份验证。我尝试过使用TM1SystemServerConnectTM1SystemServerConnectIntegratedLogin,但它们都产生了错误。

(请注意,为了简单起见,我使用了伪代码 - 是的,我已经验证了所有句柄、输入等都是正确和准确的)

// Standard login
TM1V pLogin = TM1ValuePool( hUser );
TM1V hServerName = TM1ValString( pLogin, "server", 0 );
TM1V hUser = TM1ValString( pLogin, "userid", 0 );
TM1V hPassword = TM1ValString( pLogin, "password", 0 );
TM1SystemServerConnect( pLogin, hServerName, hUser, hPassword )
// Integrated Login
TM1V pLogin = TM1ValuePool( hUser );
TM1V hServerName = TM1ValString( pLogin, "server", 0 );
TM1V hServer = TM1SystemServerConnectIntegratedLogin( pLogin, hServerName );

我从两个(hServer)返回的句柄指向代码199 和消息SystemServerCAMSecurityRequired 的错误。我搜索了 IBM 的 TM1 API Guide,但找不到解决方案(或此错误消息的任何文档)……这是怎么回事?服务器上的日志显示登录尝试失败,但未提供其他信息。

【问题讨论】:

    标签: cognos-tm1


    【解决方案1】:

    错误是因为上面使用的两个记录的登录函数专门用于IntegratedSecurityMode 1、2 和 3。

    您已表明您正在使用 Cognos 来处理用户身份验证,即模式 4 或 5。使用 Cognos 身份验证登录服务器时或多或少有两个“未记录”的函数:

    这是一个用 C++ 编写的示例(复制自 here),您可以使用参考来使用 Cognos 身份验证进行连接:

    TM1V voServerName = TM1ValStringW( hPool, (TM1_UTF16_T *)pszServerName, 0 );
    
    TM1V voPasswd = TM1ValStringEncryptW( hPool, (TM1_UTF16_T*)pszPassword, 0 );
    
    TM1V vArray[3];
    vArray[0] = TM1ValStringW( hPool, (TM1_UTF16_T*)szCAMNamespace, 0 );        
    vArray[1] = TM1ValStringW( hPool, (TM1_UTF16_T*)admin_login_name, 0 );
    vArray[2] = voPasswd;
    
    TM1V vCAMArgArr = TM1ValArray(hPool, vArray, 3);
    TM1V vTmpServer =
        TM1SystemServerConnectWithCAMNamespace(hPool, voServerName, vCAMArgArr);
    

    【讨论】:

      猜你喜欢
      • 2015-09-06
      • 2012-07-06
      • 1970-01-01
      • 2016-02-24
      • 2019-12-21
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多