这是一个ColdFusion/移动问题。我有一个带有登录页面的简单Web应用程序。
用户键入他们的登录信息,分配 session 信息,然后将他们带到
项目页面。这可以正常工作,但是当我尝试设置自动登录时(用户
单击其主屏幕上的通过用户名和密码的书签),
应该执行相同的过程,但是一旦将 session 信息带到
项目页面。这在BlackBerry 9370(带有触摸屏。
确定模型类型),但在浏览器和
BlackBerry模拟器。这是自动登录的一些代码:
<cfquery name="qryAccount">
EXEC m_AccountLogin
@Username = <cfqueryparam value="#LCase(url.u)#" cfsqltype="cf_sql_varchar">,
@Password = <cfqueryparam value="#LCase(url.p)#" cfsqltype="cf_sql_varchar">;
</cfquery>
<cfif qryAccount.recordcount>
<cflock name="lockAccount" type="exclusive" timeout="10">
<cfset session.account = {
isLoggedIn = true,
MemberID = qryAccount.iMemberID,
Role = qryAccount.iRole }>
</cflock>
<cflocation url="/mobile/home/projects.cfm" addtoken="true">
<cfelse>
<cflocation url="/mobile/index.cfm" addtoken="true">
</cfif>
我读到分配 session 变量后立即使用
<cflocation>
可能会导致一个问题,所以我尝试了JavaScript重定向,但仍然很短。有任何想法吗?
最佳答案
我忍不住认为这可能是BB浏览器中的错误,一开始就很la脚(IMO使IE6看起来可用)。
为了进行测试,将cflocation移至项目页面并在其中放置可点击的链接是否可行?我只想看看它是否可以那样工作。如果是这样,则由于某种原因,cflocation导致 session 丢失。既然您使用的是CF9,就不应该这样,但是最好还是证明一种方法。