VS2010 совместно использует cookie-файл ответа для нескольких клиентов WCF для службы SOAP 1.1 - PullRequest
1 голос
/ 21 августа 2011

У меня есть сторонний веб-сервис Java, прослушивающий три конечных точки SOAP 1.1 WSDL. Одна из конечных точек используется для инициирования сеанса и выполнения некоторых высокоуровневых задач, а другие конечные точки предназначены для специфических для субъекта задач, использующих эту первоначальную аутентификацию.

Я создаю приложение C # WCF для общения со службой, и я хотел бы поделиться сессионным cookie между тремя объектами клиента.

Каким образом VS2010 предлагает лучшие cookie-файлы?

Если эта статья все еще является лучшим ответом, я могу согласиться с ней, но я был бы признателен за некоторые дополнительные отзывы, особенно если в .NET 4 было введено упрощение, которое я не нахожу в Интернете. http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/

Я могу довольно легко создать первого клиента и сохранить сеанс (новый BasicHttpBinding myBinding; myBinding.AllowCookies = true), но я не смог найти элегантный способ сохранения файла cookie из ответа Connect и повторного использования для двух вспомогательные клиенты.

Любые идеи приветствуются.

Я должен отметить, что мне известен CookieContainer и я использую Add Web Reference вместо Add Service Reference. Этот метод помечен как «устаревший» в большинстве сообщений, которые я прочитал, и я предпочел бы оставаться в курсе ... или как можно более актуальным при работе с SOAP 1.1.

1 Ответ

0 голосов
/ 21 августа 2011

Указанная статья остается в силе. Вы должны использовать OperationContextScope и получить доступ к свойствам сообщения, чтобы получить данные протокола. Эта сложность основана на том факте, что архитектура WCF не зависит от протокола, а архитектура ASMX зависела от протокола HTTP.

Это правда, что ASMX (WebReference) является устаревшей технологией, но она все еще присутствует в .NET Framework, поэтому, если вы знаете, что вам больше не понадобится ничего более простого SOAP-обмена сообщениями без какого-либо продвинутого стандарта WS- *, вы все равно можете использовать его и сделай свою жизнь немного проще. Как только вам понадобится что-то еще, вы все равно можете провести рефакторинг своего кода и использовать WCF с упомянутым кодом для работы с файлами cookie.

...