1

Classic ASP は優先言語ではなく、放棄すべきであることを理解しています。それは確かに私の考えです。いずれにせよ、それが私の唯一の選択肢だとしましょう。

問題

私は、いくつかの uri https://blah/blah.svcでホストされている C# で記述された WCF Web サービスを持っています。SOAP 呼び出しを手動で作成し、Server.CreateObject("Msxml2.XMLHTTP.3.0")を使用して要求を作成し、応答を取得することにより、Classic ASP クライアントと対話してきました。

現在、証明書認証を使用するように WCF サービスが更新されています。クライアントが PHP と .Net で cert auth を使用しているのを見たことがありますが、Classic ASP を使用して接続する方法がわかりません。

何か案は?

私の現在のクラシック 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
4

1 に答える 1

0

可能であれば、ASPX ページでこれを構築する代わりに、「プロキシ」を使用します。これは、Ajax を介してリクエストを投稿できるメソッドであり、ダウンストリーム サービスと通信して応答を返します。

この場合、プロキシ (アプリケーション) は、WCF クライアントを使用する MVC アプリである可能性があります。

暗号化された SOAP メッセージを手動で作成するのは、特に Ajax では困難です。

于 2012-04-10T16:15:38.987 に答える