这是一个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,就不应该这样,但是最好还是证明一种方法。

10-08 09:47
查看更多