假设我有WCF Soap服务,我将此库用于SOAP标头
http://wcfextras.codeplex.com/
例如我的界面看起来像这样
[SoapHeader("HelperHeader", typeof(HelperHeader), Direction = SoapHeaderDirection.In)]
[OperationContract]
string GetData(string id);
////////
public string GetData(string id)
{
HelperHeader clientHeader=SoapHeaderHelper<HelperHeader>.GetInputHeader("HelperHeader");
if (clientHeader != null)
return id
}
在Header类中,我有basicHttpbinding的用户名和密码。
现在我想对REST服务使用此方法“GetData
”。 (我也有第二个webHttbinding)。我想为REST客户端使用此方法“GetData”,现在我发现我可以使用WebGet和Webinvoke属性
[OperationContract]
[WebGet(UriTemplate = "testjson/{id}", ResponseFormat = WebMessageFormat.Json)]
string GetData(string id);
我的问题是如何使用One Method“GetData”来支持REST和SOAP服务以及用户名和密码。
答案 0 :(得分:0)
创建HttpRequest时,您可以添加任何您想要的标题集合:
WebRequest request = WebRequest.Create("<URI>");
request.Headers.Add("username", "<UserName>");
request.Headers.Add("password", "<Pass>");
request.GetResponse();
并且在Service实现中,您可以通过调用此属性WebOperationContext.Current.IncomingRequest.Headers