2013-03-01 57 views
0

我在登錄頁面上有一個用戶名/密碼,該用戶名/密碼進入'會員'頁面。基本上,我使用了一條語句來查找SQL查詢中的行數,如果它不是1(正確的用戶名/密碼組合),那麼它將重定向回登錄頁面。在Coldfusion中:如何記住用戶已經登錄?

但是,在'member'頁面上,有些窗體可以執行各種操作,例如使用SQL將新行添加到表中,或者返回連接表的查詢。這些表單還鏈接回這個'成員'頁面,但是登錄條件(需要用戶名變量和密碼變量)將不再被滿足。

那麼,如何讓服務器記住用戶是否登錄?

回答

9

在application.cfm或application.cfc中,您需要啓用sessionManagement = true,以便跨頁請求開始跟蹤變量。然後,當用戶登錄時,您將設置一個像isAuthenticated = true的變量。只有重定向到登錄頁面,如果isAuthenticated =假或未定義

粗糙例子(你可以在Application.cfm的onSessionStart使用cfparam設置默認),假設你使用的ColdFusion 9+ 的Application.cfc

component { 
    this.name = 'myApplication'; 
    this.SessionManagement = true; 

    public function onSessionStart() { 
     param name='session.isAuthenticated' default=false; 
    } 
} 

checkAuthentication.cfm

<cfscript> 
if (!session.isAuthenticated) { 
    // send to login page 
} 
</cfscript> 

在您的登錄頁面處理,請確保您設置SES sion.isAuthenticated爲true,然後它應該跳過檢查/詢問登錄。您還可以查看CFLOGIN的內置認證功能。

希望能有所幫助。