2

我们有一个 Java 应用程序(Web 服务器),它可以为授权用户提供 AS400 (IBM i) Profile Token Credential,使用 JT Open 包生成(以字母数字字符串结尾)。我们可以将此配置文件令牌传递给其他 java 应用程序,以便他们可以使用它来建立连接,而无需我们传递用户/密码或在每台客户端 PC 的配置文件中拥有多个用户/密码副本。

我们现在需要调用当前需要用户/密码的旧版 VB 应用程序 (VB6),但我们希望能够将配置文件令牌凭据传递给它。VB程序使用OLE DB(ADODB对象)与AS400建立连接;例如当前代码...

oCN = New ADODB.Connection
oCN.Open "Provider=IBMDA400;Data Source=AS400SERVERNAME;Force Translate=0", USER, PASSWORD

...我们希望将其更改为...

oCN = New ADODB.Connection
oCN.Open "Provider=IBMDA400;Data Source=AS400SERVERNAME;Force Translate=0", TOKEN

...或类似的。

我查看了 v7R1 IBM i Access for Windows OLE DB 技术参考,我看不到任何关于配置文件令牌凭据的提及。MS 文档也只提到了用户/密码(http://msdn.microsoft.com/en-us/library/windows/desktop/ms676505(v=vs.85).aspx)。

我想知道是否有人将 Profile Token Credentials 与 OLE DB/ADO 或任何其他与 Visual Basic 6.0 兼容的数据库技术一起使用,如果有,您是否有任何文档、示例或参考资料可以分享?

顺便说一句 - 如果令牌技术不能与 VB6 一起使用,但可以与 VB.NET 一起使用,那么我们也会有兴趣了解如何做到这一点。

4

1 回答 1

3

您可以使用通用的最低权限配置文件来执行初始连接,然后调用QSYSETPT API 以采用使用令牌的特定配置文件。

cnn = New ADODB.Connection
cnn.Open "Provider=IBMDA400;Data Source=AS400SERVERNAME;Force Translate=0", USER, PASS
cmd = New ADODB.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdText
cmd.CommandText = "{{CALL QSYSETPT(?,?)}}"
cmd.Parameters.Append
    cmd.CreateParameter(, adBinary, adParamInput, 32, token)
cmd.Parameters.Append 
    cmd.CreateParameter(, adInteger, adParamInputOutput, 4, 0)
cmd.Execute
于 2014-03-04T19:30:10.050 回答