如何在请求中通过soap确保数据传输?

时间:2015-04-16 11:59:35

标签: .net security soap httpwebrequest

我使用Soap从Web服务获取数据。我的方式是发送一个带密码和用户名的HttpWebRequest。提供商给了我类似https://www.myprovider.com的内容以及他们提供的方法名称,如get_data_as_bytesget_data_as_XML等。我现在的问题是,这个程序是否安全,因为我没有代码来解码任何它看起来我通过互联网未加密的数据。或者我是否必须在SOAP文件中设置要求加密的内容?

SOAP构建如下:

Dim soapStr As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCr & vbLf & "                <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""" & vbCr & vbLf & "                   xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCr & vbLf & "                   xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCr & vbLf & "                  <soap:Body>" & vbCr & vbLf & "                    <{0} xmlns=""http://tempuri.org/"">" & vbCr & vbLf & "                      {1}" & vbCr & vbLf & "                    </{0}>" & vbCr & vbLf & "                  </soap:Body>" & vbCr & vbLf & "                </soap:Envelope>"

Dim req As HttpWebRequest = DirectCast(WebRequest.Create(Url), HttpWebRequest)
req.Headers.Add("SOAPAction", (Convert.ToString("""http://tempuri.org/") & methodName) + """")
req.ContentType = "text/xml;charset=""utf-8"""
req.Accept = "text/xml"
req.Method = "POST"

1 个答案:

答案 0 :(得分:1)

对于HttpWebRequest,您可以将协议指定为https以使用SSL / TLS。将SOAPAction网址设为https://tempuri.org/即可。

PS:在Windows上,您可以安装netmonFiddler以查看每封邮件使用的协议。