2011-05-04 22 views
0

我有一个使用[WebMethods]和[SoapHeader(“Auth”)]的asmx文件的项目。我没有使用SOAP的经验,也不明白它是如何工作的。SOAP标头如何在ASMX Web服务中工作?

通过代码我发现你可以使用一个名称与头相同的变量,它包含数据。数据如何发送到标题?它从何而来?

回答

1

数据来自SOAP信封的<soap:Header>部分中的XML。

+0

因此,有些事情正在发送SOAP请求,并且该属性抓取标题?那是对的吗? – chobo 2011-05-04 17:15:27

+2

或多或少。可能有多个标题。只有匹配的标题将被抓取。 – 2011-05-04 18:25:12

2

通过使用从SoapHeader派生的类来在头中发送数据。该类将在您的webservice类中声明为属性。然后在您的Web方法中,您将在处理实际方法之前检查此属性中的身份验证信息。

一个简单的实现可以在这里http://www.codeproject.com/KB/cpp/authforwebservices.aspx

下面的MSDN链接讲述了另一个类似的技术,这将是更加复杂的一个http://msdn.microsoft.com/en-us/library/9z52by6a.aspx发现。

在头部传递数据的基本思想保持不变。