cfscript中的cflogin

时间:2009-11-11 00:29:22

标签: coldfusion cflogin

我正在尝试学习新的cfscript语法,以及使用cflogin。 我猜我不能在cfscript中混用cf标签,而且我没有看到与cflogin,cflogout,cfloginuser等效的脚本。

我应该调用用CF8语法编写的组件才能使用cflogin吗?

public void function onRequest(required string Page) output="true" {
if (StructKeyExists(url,"logout")) {
 <cflogout>
}
<cflogin>
 local.qryUsr = new Components.Usr.Login(form);
 if (local.qryUsr.Recordcount) {
  <cfloginuser name="#form.UsrName#" password="#form.UsrPassword#" roles="#local.qryUsr.Roles#">
 } else {
  request.errorMessage = "Incorrect login";
  include login/login.cfm;
  return;
 }
</cflogin>
include arguments.Page;
}

2 个答案:

答案 0 :(得分:8)

您不能直接混合标签和脚本。但是,您可以通过在标记周围编写函数包装来伪造它:

<cffunction name="logout">
   <cflogout />
</cffunction>

并打电话:

logout();

显然,这是一个微不足道的例子。您需要在实际代码中指定参数,返回值等。

注意一:不要对接受用户输入的通用查询函数执行此操作,因为您将无法使用cfqueryparam。

注意二:我一般不这样做。如果我正在编写依赖于仅标记操作的代码,我会使用标记语法。

答案 1 :(得分:0)

作为旁注,在CFLib.org处进行了一些小的工作,以便为所有CF标签创建功能。 查看CFMLLib了解更多详情