我的用户来自第三方网站,通过http发布,网址中加密了登录凭据。
一旦index.cfm识别出这些变量,它就会将请求发送到:
<cflocation url="login.cfm?vals=#URLEncodedFormat(url.vals)#" addtoken="yes">
如果登录凭据有效,login.cfm将构建会话结构。
Session.user.userID = 1;
Session.user.firstName = "jo";
Session.user.lastName = "boo";
然后,它确实:
<cflocation url="somepage.cfm" addtoken="yes">
当我在somepage.cfm中转储会话变量时,我没有看到session.user结构。另外,我每次刷新时都会在somepage.cfm上看到不同的cfid,cftoken。我在ColdFusion 10上。
有什么想法吗?我如何保留session.user?
编辑:application.cfc有
this.name = "My Application";
this.applicationTimeout = createTimeSpan(0,2,0,0);
this.clientManagement = true;
this.loginStorage = "session";
this.sessionManagement = true;
this.sessionTimeout = createTimeSpan(0,0,30,0);
this.setClientCookies = true;
this.setDomainCookies = false;
this.scriptProtect = "all";
this.javaSettings = {LoadPaths = ["#GetDirectoryFromPath(GetCurrentTemplatePath())#java/"], reloadOnChange=true, watchInterval=180};
编辑:这是文件 http://1drv.ms/1kjnQO2
将它们解压缩到您的C:\ ColdFusion10 \ cfusion \ wwwroot \
然后转到:
http://localhost:8500/test/call.cfm
编辑:19:00 - 10月:
哇,真的很糟糕!回到家,下载了zip,将其打开到localhost。当我运行时,我可以从call.cfm中看到session.user变量。 <cfdump var="#server#">
给了我:
coldfusion
struct
InstallKit Native Windows
appserver J2EE
expiration {ts '2012-10-30 10:35:35'}
productlevel Developer
productname ColdFusion Server
productversion 10,0,0,283111
rootdir C:\ColdFusion10\cfusion
我不确定这是否与CF服务器版本有关。
更新:09:00-11:00 一旦我在CFAdmin中禁用“使用J2EE会话变量”,会话变量对call.cfm可见。现在,我必须在启用时使用J2EE会话变量。