Я подключаюсь к веб-службе, которая требует, чтобы я отправлял данные аутентификации в заголовке 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.