Что ест мое печенье ?! Cookie не передается в вызове asmx - PullRequest
4 голосов
/ 27 октября 2011

У меня проблема с файлом cookie в браузере.

У меня есть страница Sharepoint (http://myServer:24628/sites/myApp/myDocumentLibrary/test.aspx). Когда запрашивается страница, я вижу в заголовках запроса (используя firebug), что естьФайл cookie ASP.NET_SessionId.

Заголовки запроса:

Host: myServer:24628
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Cookie: ASP.NET_SessionId=2vhaxii0hxqeazii2sgw3q55; WSS_KeepSessionAuthenticated=24628
If-Modified-Since: Thu, 27 Oct 2011 15:41:15 GMT
Cache-Control: max-age=0

Заголовки ответа:

Cache-Control: private, max-age=0
Content-Length: 210604
Content-Type: text/html; charset=utf-8
Expires: Wed, 12 Oct 2011 15:41:24 GMT
Last-Modified: Thu, 27 Oct 2011 15:41:24 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 12.0.0.6421
X-AspNet-Version: 2.0.50727
Set-Cookie: WSS_KeepSessionAuthenticated=24628; path=/
http%3A%2F%2FmyServer%3A24628%2Fsites%2FmyApp%2FDiscovery=WorkspaceSiteName=UG9ydGFs&WorkspaceSiteUrl=aHR0cDovL3dlYmFwcDAxOjI0NjI4L3NpdGVzL251bnRpbw==&WorkspaceSiteTime=MjAxMS0xMC0yN1QxNTo0MTozMQ==; expires=Sat, 26-Nov-2011 16:41:31 GMT; path=/_vti_bin/Discovery.asmx
Date: Thu, 27 Oct 2011 15:41:31 GMT

После страницызагружает Я делаю ASMX-запрос (POST):

Заголовки запроса:

Host    myServer:24628
User-Agent  Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept  text/javascript, text/html, application/xml, text/xml, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
X-Requested-With    XMLHttpRequest
X-Prototype-Version 1.7
Content-Type    application/json; charset=UTF-8
Referer http://myServer:24628/sites/myApp/myDocumentLibrary/test.aspx
Content-Length  42
Cookie  WSS_KeepSessionAuthenticated=24628

Прямо перед вызовом asmx, я предупреждаю значение 'ASP.Файл cookie NET_SessionId '. Он есть, и его значение верное.

В вызове notify.asmx мне нужно получить значение cookie, чтобы иметь возможность запустить некоторую логику. Это, очевидно, не удается.
Что происходитздесь?

О да,

  • вот URL службы уведомлений: http://myServer:24628/sites/myApp/_layouts/WebServices/NotifierServices.asmx/Notify (так что тот же домен, верно?)
  • этопроисходит на IE / FF (не пробовал другие браузеры)
  • на нашем производственном сервере, все работает нормально
  • , явно веб-сервис (намеренно) установите для параметра EnableSession значение false

Manu.

Ответы [ 3 ]

2 голосов
/ 27 октября 2011

Ваш файл cookie не отправлен, поскольку поле Хост не совпадает в двух запросах:

Хост: webapp01: 24628

Host myServer: 24628

1 голос
/ 20 декабря 2011

Javascript действительно был загружен из другого места.Как предложил Крис Лайвли в комментарии к моему вопросу.

0 голосов
/ 27 октября 2011

Покрывая все базы, у вас есть [WebMethod(EnableSession = true)]?

Это происходит только в IE? Я видел это только в IE, должен был добавить запись заголовка P3P, но это было для междоменного решения SSO.

...