Coldfusion 如何检查会话变量是否已设置?

Coldfusion 如何检查会话变量是否已设置?,coldfusion,session-variables,coldfusion-10,Coldfusion,Session Variables,Coldfusion 10,在检查会话变量是否在我的详细信息页面中设置时,我一直收到“自定义脚本模块中的错误”。即使会话变量没有设置,这个语句不是应该给我true或false而不是error out吗 <cfif StructKeyExists(session.mysiteShibboleth, "isAuthenticated") and (session.mysiteShibboleth.isAuthenticated) > <cflog text="Session-Defined-5: is

在检查会话变量是否在我的详细信息页面中设置时,我一直收到“自定义脚本模块中的错误”。即使会话变量没有设置,这个语句不是应该给我true或false而不是error out吗

<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>

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(重新匹配('WEB\.[A-Z.-]+',http_header.headers.member));
session.mysiteShibboleth.isAuthenticated=“true”;
我也尝试了以下方法,但仍然存在错误。我读过这篇文章,但它似乎并没有解决我的问题

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

在检查
mysiteShibboleth
上的密钥之前,需要确保会话.mysiteShibboleth存在。这可能是问题的根源,但如果您向我们提供实际收到的错误消息,我们可以更好地帮助您

另外,请注意,
在变量名中有一个错误的
c

**编辑:添加代码示例

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

. . . 
. . . 

在检查
mysiteShibboleth
上的密钥之前,需要确保会话.mysiteShibboleth存在。这可能是问题的根源,但如果您向我们提供实际收到的错误消息,我们可以更好地帮助您

另外,请注意,
在变量名中有一个错误的
c

**编辑:添加代码示例

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

. . . 
. . . 

您遇到了什么错误?是抱怨会话.mysiteShibboleth.isAuthenticated还是简单地抱怨会话.mysiteShibboleth?您的第一个代码块假定session.mysiteShibboleth存在,但情况可能并非如此。你需要给我们这类东西的实际错误消息。你在
应用程序.cfc
中打开了会话管理吗?你得到了什么错误?是抱怨
会话.mysiteShibboleth.isAuthenticated
还是简单的
会话.mysiteShibboleth
?您的第一个代码块假定session.mysiteShibboleth存在,但情况可能并非如此。你需要给我们这类东西的实际错误消息。你是否在
应用程序.cfc
中打开了会话管理?我不知道session.mysiteShibboleth是否存在,这就是我正在检查但正在检查错误的原因。我在浏览器上看到的唯一错误是“自定义脚本模块中的错误”我不知道还能在哪里查到更多信息。关于这个错误,我在CommonSpot日志中查看,它显示了以下异常:异常:元素MYSITESHIBBOLETH.ISAUTHENTICATED在会话中未定义。即使这是真的,IsDefined(“SESSION.mysiteChibboleth.ISAUTHENTICATED”)也未定义应该解释这个错误吗?你能检查一下你的Application.CFC和session.mysiteChibbleth中的session management是否正确吗?我不知道session.mysiteShibboleth是否存在,这就是为什么我要检查但要检查错误。我在浏览器上看到的唯一错误是“自定义脚本模块中的错误”我不知道还能在哪里查到更多信息。关于这个错误,我在CommonSpot日志中查看,它显示了以下异常:异常:元素MYSITESHIBBOLETH.ISAUTHENTICATED在会话中未定义。即使这是真的,IsDefined(“SESSION.mysiteChibboleth.ISAUTHENTICATED”)也未定义应该解释这个错误吗?你能检查一下你的Application.CFC和session.mysiteChibbleth中的会话管理是否正确吗?