session - 注销并终止 session

标签 session coldfusion coldfusion-9 logout coldfusion-10

我有一个运行良好的登录页面。现在我想退出。

下面是我的 header.cfm 文件中的链接。如果 session 变量是 true它显示“注销”。如果没有,则显示“登录”。所以我只想注销。

<a id="login-link" href="login.cfm">
     <cfif session.userLoggedIn>logout <cfelse>LogIn</cfif>
</a>

申请.cfc
public boolean function onRequestStart(string targetPage)
{

    if(findNocase("login.cfm", arguments.targetPage))
    {
        return true;
    }
    else if(session.userLoggedIn)
        return true;
    else
    {
        include "login.cfm";
        return false;
    }
}

public void function onSessionStart(struct sessionObj)
{

    session.userLoggedIn = false;
}

登录.cfm
<cfif isDefined("form.btn_login") >
    <cfset userResultResponse =  communtiyServic.getUsers(form.user,form.pwd)>
    <cfset userQry = userResultResponse.getQryData() >

        <cfif userQRY.recordCount gt 0 >
            <cfset session.userLoggedIn = true />
            <cflocation url="index.cfm" >
        <cfelse>
            <cfoutput>invaled userName or password </cfoutput>
    </cfif>



</cfif>

最佳答案

如果您正在使用 CFIDCFTOKEN对于您的 session 标识 cookie(您可能不应该这样做,但它是默认设置),那么您应该只需调用 SessionInvalidate() 在您的 logout()方法。这将使服务器和客户端之间的 session 连接无效。我不确定它是否使服务器上的 session 数据过期,但如果没有,它会在超时期限后自行超时。与此同时,它在客户端将无法访问,出于所有意图和目的,它可以满足您的需求。

关于session - 注销并终止 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24545551/

相关文章:

javascript - 获取动态 anchor 标签的值并传递给下一页

mysql - 为登录用户保存记录时,用户 ID 为 NULL

sql - 如何在 CFQUERY 中使用两个数据源?

html - 防止 Coldfusion 编码 html

excel - 使用 Coldfusion 导入 Excel - 接收奇怪的日期格式 mm\/dd\/yyyy

regex - ColdFusion 9 重新替换第 n 次出现的 HTML 标签

php - PHP session 劫持

http - 在过期 session : HTTP 401 response causes browser to display login window 上休息调用

sql - 将 Firebird 数据库中的 DOUBLE 列转换为 TIMESTAMP

javascript - 当多个用户从同一 IP 地址登录时超出每小时限制