我们有一个Java应用程序(web服务器),可以为授权用户提供AS400(IBM i)配置文件令牌凭据,该凭据使用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兼容的数据库技术一起使用过,如果有,你有任何文档、示例或参考资料可以分享吗?
BTW-如果令牌技术不能与VB6一起使用,但可以与VB.NET一起使用,那么我们也有兴趣了解如何做到这一点。
您可以使用一个公共的最低权限配置文件来执行初始连接,然后调用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