Index: branches/RC/core/kernel/session/session.php =================================================================== diff -u -N -r9643 -r10005 --- branches/RC/core/kernel/session/session.php (.../session.php) (revision 9643) +++ branches/RC/core/kernel/session/session.php (.../session.php) (revision 10005) @@ -707,7 +707,20 @@ */ function GetSessionCookie() { - return isset($this->Application->HttpQuery->Cookie[$this->CookieName]) ? $this->Application->HttpQuery->Cookie[$this->CookieName] : false; + $keep_session_on_browser_close = $this->Application->ConfigValue('KeepSessionOnBrowserClose'); + if (isset($this->Application->HttpQuery->Cookie[$this->CookieName]) && + ( $keep_session_on_browser_close || + ( + !$keep_session_on_browser_close && + isset($this->Application->HttpQuery->Cookie[$this->CookieName.'_live']) + && + $this->Application->HttpQuery->Cookie[$this->CookieName] == $this->Application->HttpQuery->Cookie[$this->CookieName.'_live'] + ) + ) + ) { + return $this->Application->HttpQuery->Cookie[$this->CookieName]; + } + return false; } /** @@ -717,6 +730,7 @@ function SetSessionCookie() { $this->SetCookie($this->CookieName, $this->SID, $this->Expiration); + $this->SetCookie($this->CookieName.'_live', $this->SID); $_COOKIE[$this->CookieName] = $this->SID; // for compatibility with in-portal }