证时出现SystemServerCAMSecurityRequi

证时出现SystemServerCAMSecurityRequi

本文介绍了使用Cognos进行身份验证时出现SystemServerCAMSecurityRequired错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Cognos TM1 10.1 API连接到服务器.该服务器使用Cognos进行身份验证,而后者又使用集成登录来根据我们的Active Directory实例对用户进行身份验证.我已经尝试使用 TM1SystemServerConnect TM1SystemServerConnectIntegratedLogin ,但它们均会产生错误.

I am using the Cognos TM1 10.1 API to connect to a server. The server uses Cognos for authentication which in turn uses integrated login to authenticate users against our instance of Active Directory. I've tried using TM1SystemServerConnect and TM1SystemServerConnectIntegratedLogin, but they both produce an error.

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

// 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指南,我可以找不到解决方案(或此错误消息的任何文档)...怎么回事?服务器上的日志显示失败的登录选项,但未提供其他信息.

The handle I get back from both (hServer) points to an error with code 199 and the message SystemServerCAMSecurityRequired. I've search through IBM's TM1 API Guide and I can't find a solution (or any documentation for this error message)... what's going on? The logs on the server show failed login attemtps, but provide no additional information.

推荐答案

该错误是因为上面使用的两个已记录的登录功能专门用于集成安全模式3

The error is because the two documented login functions used above are specificaly for IntegratedSecurityMode 1, 2 and 3.

您已经表明您正在使用Cognos来处理用户身份验证(模式4或模式5).使用Cognos身份验证登录到服务器有两种或多或少的未记录"功能:

You've indicated that you are using Cognos to handle user authentication, which is either mode 4 or 5. There are two more-or-less "undocumented" functions for logging in to the server using Cognos authentication:

TM1SystemServerConnectWithCAMPassport

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

Here's a sample, written in C++ (copied from here) which you can use a reference for connecting using Cognos authentication:

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);

这篇关于使用Cognos进行身份验证时出现SystemServerCAMSecurityRequired错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 08:18