我使用this的简单方法将用户名和密码附加到SOAP请求头。这在Java边界内工作得很好,但我希望能够用我的WCF客户端调用它。我该怎么做呢?
我尝试了以下代码,但它没有在头中包含凭据:
wsClient.ClientCredentials.UserName.UserName = "Hello";
wsClient.ClientCredentials.UserName.Password = "World";提前感谢!
发布于 2011-10-04 15:55:42
这是一种非常可怕的非标准化方式。它使用定制的HTTP头,所以你不能期望内置的WCF机制会神奇地支持这种方法。WCF如何知道您要将自定义非标准HTTP标头添加到HTTP请求(而不是SOAP标头)?
使用以下命令:
var proxy = new YourServiceClient();
using (var scope = new OperationContextScope(proxy.InnerChannel))
{
var prop = new HttpRequestMessageProperty();
prop.Headers.Add("UserName", "Hello");
prop.Headers.Add("Password", "World");
OperationContext context = OperationContext.Current;
context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = prop;
proxy.CallYourOperation();
}https://stackoverflow.com/questions/7641237
复制相似问题