SOAP API HTTPS - 与经典ASP连接

时间:2011-01-10 15:08:45

标签: wcf soap asp-classic

我知道有很多关于将经典ASP客户端连接到SOAP Web服务的讨论,但我很有兴趣连接到支持HTTPS的SOAP服务。

我们有一个用WCF编写的现有SOAP Web服务,它适用于.NET客户端。我们收到了一位新客户的请求,“我们使用经典ASP - 我们如何连接到您的Web服务API?”我没有线索从哪里开始,我开始意识到我不知道实际SOAP消息的结构是什么。

我已经看到了经典ASP与Web上的SOAP Web服务聊天的例子,但没有一个通过HTTPS交换消息。我们在WCF绑定上使用消息级安全性。

这是一个失败的原因 - WS-Security是否阻止传统ASP与HTTPS SOAP服务接口?

提前致谢。

3 个答案:

答案 0 :(得分:3)

选项1:告诉您的客户今年是哪一年,并建议使用过时技术会产生相关成本,而且其中一项成本是您不支持“经典​​ASP”。

选项2:编写一些C#代码以生成服务的COM包装器。经典ASP代码(或VB6或VBA或其他)可以调用COM对象,而不知道他们使用现代工具开发的现代代码。

答案 1 :(得分:1)

经过一番调查后,我想出了以下内容:

  1. WCF邮件安全性不能与经典ASP

  2. 一起使用
  3. 我在服务上创建了第二个端点,它具有以下绑定:

      <basicHttpBinding>
      <binding name="SecureBasic" >
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName"/>
      </security>
      </binding>
     </basicHttpBinding>"
    
  4. 很少注意到这一点 -

    1. 您需要使用HTTPS(即安装自我证书)

    2. 这不是通过互联网使用的优先安全方法 - 理想情况下,您应该使用Message安全性。

    3. 我使用客户用户名和密码验证程序来验证客户请求

    4. 以下ASP代码可以很好地调用此服务:

              soapServer = "YourSOAPAddress"
              soapMessage = "Put Your SOAP Message in here use Charlies / Fiddler to determine the message"
              Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.3.0") 
              xmlhttp.setOption(2) = 13056
              xmlhttp.open "POST", soapServer, False
              xmlhttp.setRequestHeader "SOAPAction",   "urn:Alpha.Services.API.DeviceService/IDeviceService/GetDevices"
              xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
              xmlhttp.send(soapMessage)   
              Response.Write "<br>Finished calling Web Service."
              Response.Write "<br>Status = " & xmlhttp.statusText
              Response.Write "<br>ResponseText = " &  xmlhttp.responseText
      

      对于使用不支持WS-Security的语言(例如ASP)的客户端系统,这是一种可能的解决方案。

答案 2 :(得分:-1)

使用WS-Security Enabled Web Services时,经典ASP应该没有问题。这比你想象的要困难一些。至于等式的HTTPS部分?这对您的服务应该是透明的。通过HTTPS连接到某些东西与HTTP一样。

如果所有其他方法都失败了,您可以手动制作SOAP信封并手动放入所有安全细节。

幸运的是,没有必要这样做。 Microsoft发布了Microsoft SOAP Toolkit以便更轻松地使用Web服务。您应该能够使用它轻松处理您的情况。