Добавление аутентификации в заголовок безопасности в WCF для использования службы Metro WSIT

Я использую этот простой способ привязать имя пользователя и пароль к заголовку запроса SOAP. Это нормально работает внутри границ Java, но я хочу иметь возможность вызывать это с помощью моего клиента WCF. Как мне это сделать?

Я пробовал следующий код, но он не включает учетные данные в заголовке:

wsClient.ClientCredentials.UserName.UserName = "Hello";
wsClient.ClientCredentials.UserName.Password = "World";

Заранее спасибо!


person Daniel Szalay    schedule 03.10.2011    source источник


Ответы (1)


Это ужасно нестандартный способ. Он использует настраиваемые заголовки 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();
}
person Ladislav Mrnka    schedule 04.10.2011