Параметр sessionState.cookieName не работает в WCF REST - PullRequest
0 голосов
/ 21 сентября 2011

Я хочу установить другое имя файла cookie в моей службе REST WCF.

Я установил его в файле Web.config:

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <sessionState timeout="99999" mode="InProc" cookieName="xxx"/>
  </system.web>

Но это не работает:

Запрос:

POST http://localhost/wcfrest/logon HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
Host: localhost
Content-Length: 40

{"Username":"sdf","Password":"sadfsdaf"}

Ответ:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 19
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
Set-Cookie: .ASPXAUTH=780210B[...]7627C58; expires=Thu, 22-Sep-2011 11:46:06 GMT; path=/
X-Powered-By: ASP.NET
Date: Wed, 21 Sep 2011 11:46:06 GMT

{"Successful":true}

Есть ли какие-либо другие изменения, которые я должен сделать?

Спасибо.

1 Ответ

2 голосов
/ 21 сентября 2011

Таким образом, ваш запрос / ответ не показывает cookie сессии.Ответ имеет cookie-файл аутентификации с именем .ASPXAUTH (обратите внимание, что сеанс и проверка подлинности имеют разные области действия в ASP.NET и используют разные cookie-файлы).Если вы используете проверку подлинности с помощью форм, то вы можете изменить это имя файла cookie с помощью атрибута name в элемент конфигурации проверки подлинности .

Для создания файла cookie сеанса необходимо записать некоторое значение в сеанс.Как только сессионный cookie сгенерирован, вы можете видеть его прохождение в каждом запросе.Кстати, вам нужно включить режим совместимость с ASP.NET для участия в конвейере ASP.NET (включая состояние сеанса) в службах WCF.

...