Wat eet mijn koekje ?! Cookie wordt niet overgedragen in asmx-aanroep

Ik heb hier een (browser) cookie-probleem.

Ik heb een Sharepoint-pagina (http://myServer: 24628/sites/myApp/myDocumentLibrary/test.aspx). Wanneer de pagina wordt aangevraagd, kan ik in de koppen van de aanvraag zien (met behulp van firebug) dat er een ASP.NET_SessionId-cookie is.

Verzoek headers:

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

Responsheaders:

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

Nadat de pagina is geladen, maak ik een asmx-aanvraag (POST):

Verzoek headers:

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

Vlak voordat ik de asmx-aanroep doe, waarschuw ik de waarde van de cookie 'ASP.NET_SessionId'. Het is er en de waarde is correct.

In de aanroep notify.asmx moet ik de cookiewaarde ophalen om wat logica te kunnen uitvoeren. Dit mislukt duidelijk.
Wat is hier aan de hand?

Oh ja,

Manu.

4
@ jadarnel27 - Ha! Ik ging hetzelfde posten! Ik ben al eerder verslagen, maar geen opmerkingen over koekjesmonsters!
toegevoegd de auteur Curt, de bron
Waar wordt het JavaScript geladen van dat de oproep doet? Komt het van "mijnserver: 24628" of een ander domein? zie jQuery ajax verzendt geen sessiecookie"> stackoverflow.com/questions/ 2870371/& hellip;
toegevoegd de auteur NotMe, de bron
toegevoegd de auteur jadarnel27, de bron
@Curt geweldige geesten! @ TweeZz Graag gedaan =)
toegevoegd de auteur jadarnel27, de bron
@ jadarnel27 je zult in staat zijn om een ​​glimlach op mijn gezicht te toveren na 6 uur chagrijnig zijn .. thx
toegevoegd de auteur TweeZz, de bron

3 antwoord

Uw cookie wordt niet verzonden omdat het veld Host niet hetzelfde is voor de twee verzoeken:

Host: webapp01: 24628

     

Host myServer: 24628

2
toegevoegd
dat is gewoon omdat ik vergat om "webapp01" handmatig te veranderen voor het maken van de post .. mijn slechte, sry
toegevoegd de auteur TweeZz, de bron

Het JavaScript is inderdaad vanaf een andere locatie geladen. Zoals Chris Lively suggereerde in een opmerking over mijn vraag.

1
toegevoegd

Over alle bases, heeft u [WebMethod (EnableSession = true)] ?

Gebeurt dit alleen in IE? Heb dit gezien met alleen IE, moest een P3P header-entry toevoegen, maar dat was voor een cross-domein SSO-oplossing.

0
toegevoegd
Waarom zou dit iets moeten doen met het attribuut WebMethod? Het lijkt erop dat de browser de cookie niet overschrijdt ..
toegevoegd de auteur TweeZz, de bron