如何通过SSL证书调用SQL Server 2008 R2中的安全Web服务

时间:2014-04-17 11:48:32

标签: sql-server-2008-r2

我有一个由SSL证书保护的外部Web服务。我可以在我的C#应用​​程序中调用此Web服务。现在我需要使用SQL Server 2008 R2来调用它。我使用了一些代码来称之为

declare @iobject integer
declare @ihr integer
declare @data nvarchar(4000)
declare @smtpWebService varchar(200) 
declare @retVal varchar(8000) 
declare @src varchar(1000)
declare @desc varchar(1000)

exec @ihr = sp_oaCreate 'Msxml2.ServerXMLHTTP.3.0', @iobject OUTPUT 
if (@ihr <> 0)
begin 
      exec sp_displayoaerrorinfo @iobject, @ihr return
end

set @smtpWebService = 'https://xyzService.asmx/GetInformation'
set @data = 'ID=50'

exec @ihr = sp_OAMethod @iobject, 'Open', null, 'GET',@smtpWebService, 0
exec @ihr = sp_OAMethod @iobject, 'setRequestHeader', null, 'Content-Type', 'application/x-www-form-urlencoded'
exec @ihr = sp_OAMethod @iobject, 'send', null, @data 

if @ihr <> 0
begin
exec sp_OAGetErrorInfo @iobject, @src OUT, @desc OUT
select hr = convert(varbinary(4),@ihr), Source = @src, Description = @desc 

print @src 
print @desc
end

exec @ihr = sp_OAGetProperty @iObject, 'responseText', @retVal OUT
print @retVal

-- Destroy the object
exec @ihr = sp_OADestroy @iobject

它给出了消息

  

需要证书才能完成客户端身份验证

有人可以建议我如何从SQL Server传递SSL证书吗?

注意:证书安装在我当前的用户帐户和本地计算机上。

1 个答案:

答案 0 :(得分:0)

使用SQL CLR实现了相同的效果。