Как добавляют сервисную ссылку в Visual Studio 2008, проходящий проверку подлинности против защищенного паролем веб-сервиса

Я хочу сослаться на веб-сервис, и он требует аутентификации пользователя/передачи. В VS 2008, если я пробую к тому, "добавляют ссылка", или, "добавляет сервисную ссылку", все, что я могу ввести, является URL, нет никакого способа ввести мои учетные данные. Очевидно, если я пытаюсь загрузить ws, он показывает мне хорошее сообщение:

Запрос перестал работать с состоянием HTTP 403: Запрещенный. Метаданные содержат ссылку, которая не может быть разрешена: Запрос HTTP несанкционирован со схемой 'Anonymous' аутентификации клиента. Заголовок аутентификации, полученный от сервера, был 'Основной областью = "weblogic"'. Удаленный сервер возвратил ошибку: (401) Несанкционированный.

Таким образом, мой вопрос: действительно ли возможно (использование VS 2008) добавить ссылку на веб-сервис, который защищен? Как?

15
задан Avada Kedavra 12 September 2012 в 17:38
поделиться

2 ответа

В зависимости от того, как служба аутентифицируется, вас могут решить.

Если он использует членство в ASP.Net, радости не будет. Если сервисный код ваш, временно отключите аутентификацию, чтобы сгенерировать прокси.

В противном случае попробуйте использовать стандартный механизм:

http://username:password@host.domain/service

Лучший выбор : получите WSDL от вашего поставщика и используйте wsdl.exe для создания вашего прокси.

Обновление в ответ на комментарий:

Да, имитация службы для создания прокси-сервера - вполне разумный план, если целевая служба является службой ASP.net или принимает и возвращает только простые типы.

Конструктор веб-службы имеет перегрузку, которая принимает URI, или вы можете просто изменить сгенерированный источник.

Если вы решите изменить сгенерированный источник, вы, вероятно, захотите просто извлечь прокси-класс и удалить ссылку на веб-службу:

После создания прокси-сервера с помощью VS, если вы «покажете все файлы» и углубитесь в в справочнике WebService вы найдете файл с именем Reference.cs . Это единственный файл, который вам нужен. Скопируйте содержимое в другой файл, а затем просто удалите ссылку на веб-службу.

Если вы сделаете это, вы потенциально можете добавить свою логику аутентификации в прокси на этом этапе.

Но, опять же, лучше всего получить WSDL от поставщика.

Удачи.

4
ответ дан 1 December 2019 в 04:27
поделиться

Похоже, вы пытаетесь использовать веб-ссылку, а не ссылку на службу (хотя я считаю, что веб-ссылка является одним из видов ссылки на службу). В VS08 после того, как вы запустили «Добавить ссылку на службу», набрали URL-адрес веб-службы, нажмите кнопку «Дополнительно», затем нажмите «Добавить веб-ссылку». Введите URL еще раз, затем нажмите «Добавить веб-ссылку». Теперь вместо этого у вас должна быть веб-ссылка, тогда аутентификация аналогична приведенной ниже:

WebService.Service myService = new WebService.Service();
myService.Credentials = new System.Net.NetworkCredential("username", "password");
WebService.ResultType results = myService.MyMethodReturnsResultType();
7
ответ дан 1 December 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: