据我所知,Classic ASP不是首选语言,应该放弃它。那些肯定是我的想法。无论如何,让我们假设这是我唯一的选择。
我有一个用C#编写的WCF Web服务托管在某些uri https://blah/blah.svc。我一直在与Classic ASP客户端通过手动形成SOAP调用并使用 Server.CreateObject(“Msxml2.XMLHTTP.3.0”)来发出请求并获得响应。
现在,WCF服务已更新为使用证书身份验证。我见过客户在PHP和.Net中使用cert auth,但我不知道如何使用Classic ASP连接。
有什么想法吗?
Dim objXMLHTTP : set objXMLHTTP = Server.CreateObject("Msxml2.XMLHTTP.3.0")
Dim strRequest, strResult, strFunction, strURL, strNamespace
strNamespace = "http://tempuri.org/IBlah/test"
strURL = "https://blah/Blah.svc"
strFunction = "test"
strRequest = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/"">" _
& " <soapenv:Header/>" _
& " <soapenv:Body>" _
& " <tem:test>" _
& " <tem:testdata>" & testdata & "</tem:testdata>" _
& " </tem:test>" _
& " </soapenv:Body>" _
& "</soapenv:Envelope>"
objXMLHTTP.open "post", strURL, False
objXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXMLHTTP.setRequestHeader "SOAPAction", strNamespace
'send the request and capture the result
Call objXMLHTTP.send(strRequest)
response = objXMLHTTP.responseText
答案 0 :(得分:0)
如果有可能 - 不要在ASPX页面中构建它,而是使用“代理”,这是一种可以通过Ajax发布请求的方法,后者又可以与下游服务进行通信并将响应发回给您。
在这种情况下,您的代理(应用程序)可能是使用WCF客户端的MVC应用程序。
手工制作加密的SOAP消息很难,特别是来自Ajax。