2014-03-04 38 views
2

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

我们现在需要调用一个当前需要用户/密码的传统VB应用程序(VB6),但我们希望能够将它传递给Profile Token Credential。 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)。

我想知道的是,是否有人使用配置文件令牌凭证与OLE DB/ADO或任何其他Visual Basic 6.0兼容的数据库技术,如果他们有,是否有任何文档,示例或引用可以分享?

顺便说一句 - 如果令牌技术不能与VB6一起使用,但可以与VB.NET一起使用,那么我们也会有兴趣知道如何实现。

回答

3

您可以使用通用最低权限配置文件执行初始连接,然后调用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 
+0

这是一个很好的建议,我以前没有听说过这个命令。谢谢,我会试试看。 – Rich