views:

8075

answers:

1

I'm using Internet Explorer 8 beta 2.

  1. Client performs POST on http://alpha/foo

  2. Server responds with redirect to http://beta/bar

  3. Client performs GET on http://beta/bar

  4. Server responds with redirect to http://beta/baz and sets cookie

  5. Client performs GET on http://beta/baz including cookie

  6. Server provides response

  7. User selects "Open in new window" on a link in the page

  8. Client performs GET on http://beta/link, without cookie!

If in step 7 the user just clicks the link, the cookie is passed correctly. If there is no redirect, the cookie is passed correctly even if the user selects "Open in new window".

Is there a way to convince IE8 to pass the cookie in step 8?

(Edit: I believe this is a bug in IE8 beta 2, so I've raised it on the IE beta newsgroup. Workaround suggestions welcome.)

+1  A: 

I believe that IE8 uses a separate process for each window. If you're using session cookies, the new process will start with a fresh session and therefore won't be able to submit the session cookies received by the other process. Can you try using persistent cookies and see what happens?

From http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-existing.aspx#lcie

Loosely-coupled Internet Explorer (LCIE) is an architectural effort to improve the browser by separating its components and loosening their interdependence: most notably, it is an attempt to isolate the Internet Explorer frame and its tabs into separate processes. In Internet Explorer 8, this isolation will bring about improved performance and scalability, as well as more potent methods to recover from problems like disk or system failure.

Ates Goral
Thanks - persistent cookies do work. But that would be a pretty invasive change to my application. Do you think this is a bug? Note that if steps 2 through 5 are omitted (i.e., there is no redirect), "open new window" *does* preserve session cookies. That seems inconsistent.