ええ、これは楽しいはずです。
Fusebox 5.5で構築され、iFrameを使用しているサイトで作業しています。私は最近、サイトをApplication.cfcに変換し、サイトのgoogleインデックス作成に使用しているCookieをHTTPonlyに設定するという任務を負いました:http://www.petefreitag.com/item/764.cfm。アプリケーションはCF8で実行されています。
私が直面している問題は、ユーザーがサイトにログインした後、ログインプロセスの後にセッションデータが設定され、ヒューズがトリガーされて、サイトを分割するための「フレームバスター」機能を含むホームページが読み込まれることです。ログインしてメインページをロードするための内部iframe。これが実行されると、IEはセッションをドロップし、ページの残りの部分がロードされると、セッションが欠落していることを検出してホームページへのリダイレクトを強制する別のチェックが発生します。各javascriptリダイレクトは、IEで使用されるときに新しいセッションを作成します。この問題はFirefoxまたはChromeでは発生していません。
これは、bodyタグのonLoadとしてトリガーされるフレームバスター関数です。
function changeParentLocation()
{
if (top != self) {
self.location.href = <cfoutput>"#Application.rootdir#"</cfoutput>;
top.location.replace(self.location.href);
}
}
これはonSessionStart関数です。
<cffunction name='onSessionStart' access='public' returntype='void' output='false'>
<cfheader name="P3P" value="CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'" />
<cfheader name="Set-Cookie" value="CFTOKEN=#session.CFTOKEN#;path=.my.sites.subdomain/;HTTPOnly">
<cfheader name="Set-Cookie" value="CFID=#session.CFID#;path=.my.sites.subdomain/;HTTPOnly">
<!---<cfcookie name="CFTOKEN" domain=".my.sites.subdomain" value="#Session.CFTOKEN#" />
<cfcookie name="CFID" domain=".my.sites.subdomain" value="#Session.CFID#" />--->
</cffunction>
HTTPOnly Cookieをコメントアウトし、代わりに現在コメントアウトされているCFCookieコードを使用すると、IEは複数のセッションを作成しようとしません。