2016-02-29 116 views
0

當我檢查會話變量是否設置或在我的詳細信息頁面中時,我不斷收到「自定義腳本模塊中的錯誤」。即使會話變量沒有設置,是不是這個聲明應該給我真假,而不是錯誤?如何檢查會話變量是否已設置?

<cfif StructKeyExists(session.mysiteShibboleth, "isAuthenticated") and (session.mysiteShibboleth.isAuthenticated) > 
    <cflog text="Session-Defined-5: isAuthenticated" type="Information" file="Authentication"> 
<cfelse> 
    <cflog text="Session-Defined-7: It's not authenticated'" type="Information" file="Authentication"> 
</cfif> 

在我的authenticate.cfm文件中,這是設置會話變量的地方。

<cfif cgiReferer eq shibboleth_url> 
    <cfscript> 
     session.mysiteShibboleth = StructNew(); 
     session.mysiteShibboleth.username=REReplace(http_header.headers.eppn, "@mysite.com","","ALL"); 
     session.mysiteShibboleth.mail=http_header.headers.eppn; 
     session.mysiteShibboleth.groups=ArrayToList(REMatch('WEB\.[A-Z.-]+', http_header.headers.member)); 
     session.mysiteShibboleth.isAuthenticated="true"; 
    </cfscript> 
</cfif> 

我也嘗試了以下,它仍然出錯。我已閱讀此thread,它似乎並沒有解決我的問題。

<cfif IsDefined("session.mysitecShibboleth.isAuthenticated")> 
+1

你得到什麼錯誤? –

+2

它是在抱怨'session.mysiteShibboleth.isAuthenticated'還是僅僅'session.mysiteShibboleth'?你的第一塊代碼假設存在'session.mysiteShibboleth',這可能不是這種情況。 YOu需要給我們這樣的事情*實際*錯誤信息。 –

+0

您是否在'application.cfc'中啓用了會話管理? –

回答

4

你需要確保你session.mysiteShibboleth檢查上mysiteShibboleth一鍵之前存在。這可能是您問題的根源,但如果您向我們提供了收到的實際錯誤消息,我們可以幫助您更好。

另外請注意,<cfif IsDefined("session.mysitecShibboleth.isAuthenticated")>在變量名中有一個錯誤的c

**編輯:添加代碼示例

<cfif StructKeyExists(session, "mysiteShibboleth"> 
    <cfif StructKeyExists(session.mysiteShibboleth, "isAuthenticated") and (session.mysiteShibboleth.isAuthenticated) > 
    . . . 
    </cfif> 
<cfelse> 
    . . . 
</cfif>
+0

我不知道session.mysiteShibboleth是否存在,這就是爲什麼我正在檢查但檢查出錯。 – Charlie123

+0

我在瀏覽器上看到的唯一錯誤是,「自定義腳本模塊中出現錯誤。」我不確定我還能在哪裏查看更多信息。在錯誤。 – Charlie123

+0

我查看了CommonSpot日誌,它顯示了這個異常:異常:元素MYSITESHIBBOLETH.ISAUTHENTICATED在SESSION中未定義。 – Charlie123