У меня есть несколько служб WCF в домене:
- Служба аутентификации (стандартная MS, через HTTPS)
- AppService (HTTP)
Обычно я звоню в Службу аутентификации, и возвращается cookie. Для настольных приложений я отсоединяю cookie и присоединяю его при каждом новом вызове службы для AppService, который раскрывает сущность моего API.
Silverlight в браузере автоматически прикрепляет cookie при всех вызовах домена. Я ожидал, что телефон сделает то же самое.
Это не так.
Доступ к заголовкам на телефоне не поддерживается, поэтому ручное управление недоступно. Интересно, потому что какая-то яркая искра в MS подумала, что телефон должен принудительно , чтобы куки-файлы были присоединены только к конечным точкам HTTPS в том же домене или чем-то еще ...
Помощь !!
Это кошмар для устранения неполадок, поскольку телефон не поддерживает другие важные настройки; игнорирование самоподписанных сертификатов.
Спасибо
Люк
** ОБНОВЛЕНИЕ **
Пока я следую за методом с помощью CookieContainer, я должен указать, что, хотя метод Add в коллекции Headers отсутствует в Silverlight, все же можно добавлять заголовки с помощью индексатора.
См. http://cisforcoder.wordpress.com/2010/12/01/how-to-implement-basic-http-authentication-in-wcf-on-windows-phone-7/
** ОБНОВЛЕНИЕ 2 **
CookieContainer может быть установлен в соответствии с ответом Lex. Теперь я застрял и продолжаю исследовать исключение ArgumentNullException, создаваемое клиентом WCF при References.cs EndInvoke. Мой сервер не показывает никаких признаков приема вызова.
Два ключевых вызова в стеке:
System.Net.Browser.HttpWebRequestHelper.ParseHeaders
И
MS.Internal.InternalWebRequest.OnDownloadFailed
ФИНАЛЬНОЕ ОБНОВЛЕНИЕ
Кажется, что ArgumentNullException генерируется при вызове сервера с самозаверяющим сертификатом.
Однако в эмуляторе / SDK есть что-то странное. У меня было это исключение для всех моих серверов, даже для тех, у которых нет SSL и один с выданным сертификатом.
У меня также были проблемы, которые были решены только локальной перезагрузкой. Поэтому я думаю, что мои проблемы были результатом наличия правильного кода, но я думал, что он был неправильным из-за других проблем в SDK.
Не уверен, какой совет дать, за исключением недоверия к исключениям, вытекающим из стека WPF WP7, в частности к EndpointNotFoundException и ArgumentNullException, и к тому, чтобы иметь полнофункциональное тестовое клиентское приложение для проверки работоспособности.
Люк