如何检查是否设置了会话变量?
How do I check if a session variable is set?
在我的详细信息页面中检查是否设置了会话变量时,我一直收到 "Error in custom script module"。即使未设置会话变量,此语句不应该给我 true 或 false 而不是错误输出吗?
<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")>
在检查 mysiteShibboleth
上的密钥之前,您需要确保 session.mysiteShibboleth
存在。这可能是您问题的根源,但如果您向我们提供了收到的实际错误消息,我们可以更好地帮助您。
另外,请注意 <cfif IsDefined("session.mysitecShibboleth.isAuthenticated")>
在变量名中有一个错误的 c
。
** 编辑:添加代码示例
<cfif StructKeyExists(session, "mysiteShibboleth">
<cfif StructKeyExists(session.mysiteShibboleth, "isAuthenticated") and (session.mysiteShibboleth.isAuthenticated) >
. . .
</cfif>
<cfelse>
. . .
</cfif>
在我的详细信息页面中检查是否设置了会话变量时,我一直收到 "Error in custom script module"。即使未设置会话变量,此语句不应该给我 true 或 false 而不是错误输出吗?
<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")>
在检查 mysiteShibboleth
上的密钥之前,您需要确保 session.mysiteShibboleth
存在。这可能是您问题的根源,但如果您向我们提供了收到的实际错误消息,我们可以更好地帮助您。
另外,请注意 <cfif IsDefined("session.mysitecShibboleth.isAuthenticated")>
在变量名中有一个错误的 c
。
** 编辑:添加代码示例
<cfif StructKeyExists(session, "mysiteShibboleth">
<cfif StructKeyExists(session.mysiteShibboleth, "isAuthenticated") and (session.mysiteShibboleth.isAuthenticated) >
. . .
</cfif>
<cfelse>
. . .
</cfif>