2008-10-14 2 views
3

Я пытаюсь использовать тот же http-файл cookie (по сути asmx sessionid), в нескольких конечных точках WCF-клиента.Клиент WCF, использующий несколько служб asmx, использующих HTTP-файлы cookie

Сервер имеет несколько конечных точек, одна из них:

AuthenticationService.asmx
Вход() < - Создает HTTP печенье, которое на серверы ASP.NET SessionID
Выход() < - Уничтожает же печенье

SomeOtherService.asmx
DoSomething() < - Requeres действительное печенье из AuthenticationService.asmx.

Как я могу поделиться HTTP Cookie через несколько конечных точек.

У меня нет контроля над кодом сервера, и необходимо использовать WCF.

ответ

0

Если вы включили режим совместимости asp.net, вы можете получить доступ к сеансу http из своей службы WCF, поэтому вам не нужно добавлять файлы cookie для этого.

http://msdn.microsoft.com/en-us/library/ms752234.aspx

+0

Проблема в том, что я havent создал службу asmx, это вне моего контроля. У меня есть контроль над клиентом, но насколько я могу сказать, что режим ASP.Comp предназначен для служб конечных точек сервера? – 2008-10-15 07:38:00

+0

Да, он должен быть включен в web.config для сайта. – jezell 2008-10-20 21:42:06

0

Я просто столкнулся с той же проблемой. Если клиент WCF разговаривает только с одним сервисом ASP.NET, это легко. Просто установите для свойства AllowCookies свойство BasicHttpBinding значение true, и прокси-сервер службы автоматически обработает cookie идентификатора сеанса ASP.NET.

Но у меня такая ситуация, как у вас, где есть 2 службы ASP.NET. Мне нужен мой WCF-клиент, с которым можно поговорить. Первый из них выдает cookie сеанса идентификатора ASP.NET, и мне нужно передать этот файл cookie в вызовы второй службе. Кто-нибудь знает как это сделать?

5

Посмотрите на this article.
В нем объясняется, как вручную управлять кукисами в прокси-клиенте WCF. Точнее, WCF предоставляет API, позволяющий вам извлекать файлы cookie из ответа HTTP, и таким же образом вручную устанавливать cookie в HTTP-запрос.

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

This thread на форумах MSDN объясняет, как это сделать для каждого вызова службы в приложении с помощью служб WCF Message Inspectors.

UPDATE:

Я написал в блоге о том, как решить эту проблему. Вы можете прочитать его over here.

 Смежные вопросы

  • Нет связанных вопросов^_^