Файлы cookie в сервисе wcf OperationContract
Можно ли читать куки в OperationContract службы wcf? Я пытаюсь прочитать значение cookie в методе контракта, но оно всегда пустое. Если я читаю тот же файл cookie со страницы.aspx, значение присутствует. Есть идеи?
2 ответа
Как вы их размещаете? Предполагается, что WCF не зависит от хоста, т. Е. Ваши службы должны работать, если они размещены за пределами IIS. Однако есть режим совместимости, который может вам помочь:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
Значение по умолчанию - false и отключает большинство функций ASP.NET, таких как HttpContext.Current.
Свойство BasicHttpBinding.AllowCookies может это исправить, как было упомянуто в начале сообщения в блоге Enrico Campidoglio об управлении общими файлами cookie в WCF (ссылка здесь). Пост включает фрагмент web.config:
<system.ServiceModel>
<bindings>
<basicHttpBinding allowCookies="true">
</bindings>
<client>
<endpoint address="http://localhost/myservice"
binding="basicHttpBinding"
contract="IMyService" />
</client>
</system.ServiceModel>
но нет фрагмента кода, использующего его (в блоге есть код для более сложных решений, использующих одни и те же файлы cookie с различными веб-службами).
======== РЕДАКТИРОВАТЬ ==========
Или, возможно, даже allowCookies=false