首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有必要更换CFLogin,或者我是否遗漏了什么?

是否有必要更换CFLogin,或者我是否遗漏了什么?
EN

Stack Overflow用户
提问于 2010-11-04 13:33:54
回答 2查看 368关注 0票数 4

我正在认真考虑远离CF8 cflogin,因为它与生成登录的服务器绑定在一起。在负载平衡环境中,如果不执行自定义实现,就会遇到粘性会话。

有没有人有任何模仿CFLogin的源代码,可以写入客户端作用域并从客户端作用域进行管理?甚至可能是一个与isuserinanyrole角色上的重命名替换相匹配的设计。

当我考虑为CFLogin编写一个替代实现时,我应该考虑什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-08 21:40:19

下面是使用存储在客户端作用域中的变量的基本非cflogin方法。我们在负载均衡器后面的服务器集群中使用类似的方法来处理非粘性会话。

此代码应位于Application.cfc -> onRequestStart()方法中:

代码语言:javascript
复制
<!--- handle login *post* --->
<cfif structKeyExists(FORM, "pageaction") and FORM.pageAction eq "adminlogin">

<!--- attempt to log user in --->

    <cfif loginSuccessful>

        <!--- Set client variables for session management --->
        <cfset CLIENT.lastHit = now() />
        <cfset CLIENT.loggedIn = 1 />

        <!--- redirect to home page --->

    <cfelse>

        <!--- redirect to login page with message --->

    </cfif>

<!--- all other requests, except for the login page --->
<cfelseif structKeyExists(CLIENT, "lasthit") and structKeyExists(COOKIE, "cfid") and structKeyExists(CLIENT, "cfid") and listLast(CGI.SCRIPT_NAME, "/") neq "login.cfm">    

    <!--- Check for timeout --->
    <cfif (datediff("n", CLIENT.lastHit, now()) lte 10) and (CLIENT.loggedIn is 1) and (CLIENT.cfid is COOKIE.cfid)>

        <!--- record last hit --->
        <cfset CLIENT.lastHit = now() />

    <cfelse>

        <!--- timeout! redirect to login page --->
        <cflocation URL="http://mydomain/login.cfm" addtoken="false" /> 

    </cfif> 

</cfif>

有用户角色的东西,但我希望这有助于作为一个起点。

票数 2
EN

Stack Overflow用户

发布于 2010-11-09 01:22:37

我通过Dreamweaver自定义了CF登录向导,使其成为可移植的,并使用db表进行身份验证和角色管理。正因为如此,我可以将其用作单用户登录或多帐户登录。我从来没有使用过cflogin,也不需要这样做。我只需将文件放到目录中,自定义登录凭据,就行了。每一次都很完美。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4094132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档