• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

CGI.JSessionId is same with new instance of FireFox

New Here ,
Aug 20, 2006 Aug 20, 2006

Copy link to clipboard

Copied

I am developing a CF MX7 application.
I want a user to be able to have multiple sessions open from the same client machine.
I use CGI.JSessionId as a key to my database session state handling. In IE6 it works just fine. When the user opens a new browser window there is a new CGI.JSession Id
With Firefox 1.5 when a new tab is opened or when a whole new instance of the browser is started it has the same CGI.JSessionId. This is my problem With Firefox the user only can have one active session.
Any thoughts would be greatly appreciated.
Thankd
Archie Campbell
TOPICS
Advanced techniques

Views

6.1K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 21, 2006 Aug 21, 2006

Copy link to clipboard

Copied


I have never done anything what you have described nor have I heard of anyone
doing something similar.

I would be interested to hear how others have solved a problem similar to yours.

My first reaction to a possible solution is pretty messy and not even viable.

But here it is anyway...

Persist a new URL or FORM variable/token on every page called such that new
browser windows would necessarily not have this variable in the URL or
FORM scope. Leave this token in the URL/FORM scope and don't assign or
create a similarly named token in the SESSION or COOKIE, etc.

Meaning, if CF receives a page request and the URL/FORM token does not
exist, then it must mean that the user has opened another browser.

For this to work, you must persist the token's value on every
page/link/submit/etc. the user makes. You will also need to come up with a way
of generating universally unique token values. ( consider CreateUUID() )

You should now have a new token to use in place of or in addition to jsessionid.

Good luck!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

The more I think about the situation I have encountered the more I conclude either:
1. IE (Microsoft) is doing it right and Firefox is doing it wrong, or
2. ColdFusion works better with IE than with Firefox.

I know, both comments are blasphemous.
But I live in a free country and its my story and I am sticking to it 😉

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

Archie,

Do you have cookies disabled in IE? We use Java session variables on our sites and IE and Firefox both act the same, a single session for all browser instances. If you disable cookies, then session tracking is done via URL rewriting (and you need to be sure to append it to the end of every link on your site, otherwise you lose session information). When session tracking is done via URL rewriting, each browser window, or tab, or whatever can have its own session.

When it's tracked via cookies, then all browser windows share the same session.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

re: "We use Java session variables on our sites and IE and Firefox both act the same, a single session for all browser instances."
Well they dont for me. From the same WinXP client machine, if I open another instance of IE 6 it gets a different CGI.JSessionID.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

huh. nevermind.

If you do a File->New->Window, you get the same session. If you open another IE window by starting the program again, you get a different session.

All other browsers work the Firefox way. Why IE does it differently, and does it differently based on how you get 2 windows open, is anyone's guess... The big question is, how does IE7 handle it?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

1. re: "If you do a File->New->Window, you get the same session. If you open another IE window by starting the program again, you get a different session."
That is just plain silly.

2. re: "All other browsers work the Firefox way" I would change the emphasis from the browser to ColdFusion. I would want ColdFusion to create a separate jSessionId for each new browser instance whether it be a new Windows, a new Start Program, or just a new tab in Firefox. Otherwise the sessions are going to clobber each other.

I think what I am asking for is a simple way of doing multi-tasking at the client level. If ColdFusion treated the other browser sessions like it treats an IE6 new instance I would be happy.

Thanks
Archie

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

Interesting enough...IE7 B3 maintains the session regardless if you open
a new window (CTRL-N), or open a new tab (CTRL-T), however, if I start a
new instance from the Quick Launch Toolbar IE Icon, I get a new session
...at least on my Dev machine WinXP Pro IE7 b3, CFMX 7.02, J2EE sessions
HTH
--
Tim Carley
www.recfusion.com
info@NOSPAMINGrecfusion.com

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Aug 22, 2006 Aug 22, 2006

Copy link to clipboard

Copied

Archie,

If you're using J2EE session management, it isn't Coldfusion that is or isn't handling it "correctly", it's JRun. All J2EE servers handle this the same way. Sessions are tracked via cookie unless cookies are disabled, then it falls back to URL rewriting, but you need to make sure you tack it onto the end of all your links, form posts, etc.

Because it uses a cookie to track sessions, the browser would need to keep per-window-instance or per-tab-instance cookies rather than application-wide cookies. My guess is when you open a new IE instance from the Start menu, it starts with no transient cookies. When you do File->New->Window, it inherits the transient cookies of the parent Window. All other browsers all have shared transient cookies across all instances and tabs.

As I already said, if you want per-window-instance or per-tab-instance sessions, you need to track your sessions using URL rewriting.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 23, 2006 Aug 23, 2006

Copy link to clipboard

Copied

LATEST
Kronin555
I think I got it now.
Much appreciate your clearly worded comments.
Thanks
Archie

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation