我有一个 ColdFusion 网站,它根据登录用户的属性以onrequeststart()
编程方式处理“禁止”/“未经授权”的请求。Application.cfc
例如(仅供参考:SESSION.User
初始化为onSessionStart()
:
<cffunction name="onRequestStart" returnType="Boolean" output="false">
<cfargument name="targetPage" type="string" required="true">
<cfparam name="REQUEST.MinSecurityLevel" default="0" />
<cfparam name="REQUEST.IsLoginRequired" default="false" />
<cfif REQUEST.IsLoginRequired AND NOT SESSION.User.isLoggedIn()>
<cfscript>
SESSION.LoginMessage =
"Your session has timed out. Please log in again.";
SESSION.LastPageVisited =
getPageContext().getRequest().getRequestURI();
if (Len(Trim(getPageContext().getRequest().getQueryString())))
SESSION.LastPageVisited =
SESSION.LastPageVisited
& "?"
& getPageContext().getRequest().getQueryString();
</cfscript>
<cflocation url="/user/login/" addtoken="false" />
<cfelseif SESSION.User.getSecurityLevel() LT REQUEST.MinSecurityLevel>
<cfheader statuscode="403" statustext="Forbidden" />
</cfif>
<cfreturn true />
</cffunction>
在 IIS(版本 7)中,我有一个错误页面设置,类型为“执行 URL”和我的自定义 403 页面路径。
我能够触发它,它会正确显示我的自定义 403 页面,但它会返回 HTTP 响应代码 200。
这不应该返回 403 吗?