如何使用配置文件设置SSIS Http Connection Manager凭据?

时间:2009-06-18 12:57:02

标签: sql-server-2005 ssis

在SSIS包中,我有一个使用Http Connection Manager的Web Service任务。我需要为连接设置凭据,以便它将使用远程Web服务进行身份验证。我可以在设计时设置它们,但是我希望使用XML包配置文件将这些凭据提供给包。

问题是连接的凭据不会出​​现在可配置的属性中。我已尝试以编程方式设置此选项,但我似乎无法以这种方式访问​​凭据:

Dim webConnMgr As ConnectionManager = Dts.Connections("My web service")
Dim webConn As Wrapper.ConnectionManagerHttpClass = _
    CType(webConnMgr.InnerObject, Wrapper.ConnectionManagerHttpClass)
webConn.?

有什么想法吗?

5 个答案:

答案 0 :(得分:1)

SQL 2005具有非常有限的ConnectionManagerHttpClass成员属性。值得庆幸的是,它已在SQL 2008中得到解决:)

MSDN - SQL 2005 ConnectionManagerHttpClass properties.

<强> VS

MSDN - SQL 2008 ConnectionManagerHttpClass properties.

根据this MSDN link,公共类[ConnectionManagerHttpClass]实现IDTSConnectionManager90,ConnectionManagerHttp。

由于我们假设您使用的是SQL 2005(根据您的Stackoverflow标记),您可能还想查看IDTSConnectionManager90.ConnectionString Property on MSDN

另请查看ConnectionManagerHttpClass.ConnectionString Property on MSDN,它实现了IDTSConnectionManager90.ConnectionString并且可以覆盖。

这应该指向正确的方向。愿闹剧与你同在。

答案 1 :(得分:0)

听起来您需要将配置文件中的值分配给包中的变量。然后,您可以从脚本任务中访问该变量(Dts.Variables(“VariableName”)。如果我没记错的话,可以使用Value.ToString!)。

答案 2 :(得分:0)

我发现无法使用配置文件或以编程方式指定凭据,但解决方法是简单地将所有凭据(在设计器中设置)保存在包中,然后为包提供不同的副本每种不同的配置。这是通过将程序包的ProtectionLevel设置为例如EncryptSensitiveWithPassword来完成的。

这显然不太理想。

答案 3 :(得分:0)

SQL2008 SSIS正确公开这些属性;不幸的是,2005年是我必须与之合作的环境。我通过开发一个允许设置属性的自定义组件解决了这个问题。

答案 4 :(得分:0)

这可以通过将保护级别设置为EncryptSensitiveWithPassword来完成,并使用decrypt选项运行ssis