我有一个由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证书吗?
注意:证书安装在我当前的用户帐户和本地计算机上。
答案 0 :(得分:0)
使用SQL CLR实现了相同的效果。