Добавление файла cookie в клиент порта веб-службы

2

Я использую веб-службу в своем приложении, которая требует, чтобы определенный файл cookie был настроен для доступа к его методам.

Я использовал сгенерированный класс оболочки для этой службы, созданный с помощью инструмента wsdl.exe. Все работает нормально, используя этот метод.

// this is the instance of object generated with wsdl.exe
WSWrapper service = new WSWrapper(); 

// set cookie
service.CookieContainer = new CookieContainer();    
Cookie cookie = new Cookie(name, value, path, domain);
service.CookieContainer.Add(cookie);

// run method requiring cookie to be set
service.Test(); 

Теперь я хотел сделать что-то подобное, используя Service Reference вместо предварительно сгенерированного класса. Я добавил веб-ссылку, но, похоже, не было CookieContainer (или чего-то подобного) в клиентском дескрипторе сервиса, который был сгенерирован.

Кто-нибудь знает, как добавить файл cookie к этому клиенту?

Теги:
cookies
client
web-services
cookiecontainer

2 ответа

0
Лучший ответ

Я решил проблему. Вместо создания Service Reference я добавил Web Reference, и у сгенерированного клиента были все свойства предварительно сгенерированного класса wsdl.exe.

4

Тем не менее существуют преимущества для созданных прокси-серверов svcutil.exe.

Сохранение и возврат клиенту файлов cookie, возвращаемых сервером (как это обычно делается путем простого добавления CookieContainer), теперь можно контролировать с помощью app.config. Добавьте allowCookies="truebasicHttpBinding или basicHttpsBinding в качестве атрибута привязки.

В качестве альтернативы используйте редактор конфигурации WCF, чтобы сделать то же самое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню