Невозможно отправить SOAP-заголовки в ASMX - PullRequest
0 голосов
/ 08 февраля 2012

Я подключаюсь к веб-службе, которая требует, чтобы я отправлял данные аутентификации в заголовке HTTP. Мой коллега успешно это сделал, но он использует Visual Studio 2005. Мы оба импортировали ссылку на службу, но у него, похоже, есть доступ к дополнительным вещам, которых у меня нет. Например, определен класс WSAuthHeader, но в своем WebServiceClient он имеет доступ к полю authValue, которого у меня нет.

Я попытался заполнить эту недостающую информацию с помощью операции, подобной этой:

using (OperationContextScope scope = new OperationContextScope(this._client.InnerChannel))
{
    OperationContext.Current.OutgoingMessageHeaders.Add(MessageHeader.CreateHeader("user", "", this.Username));
    OperationContext.Current.OutgoingMessageHeaders.Add(MessageHeader.CreateHeader("password", "", this.Password));
    this._client.PerformOperation();
}

Однако, похоже, это не работает. Изменяет ли факт, что WSAuthHeader определен в файле WSDL? Есть ли какой-то скрытый способ, которым я могу отправить экземпляр этого класса вместе с операциями, которые я выполняю на своем WebServiceClient?

Обратите внимание, что я использую Silverlight, и у меня нет доступа ко многим приятным вещам, которые я обычно мог бы использовать в .NET.

...