<CFIF SESSION.VALIDATED IS "No"> 一旦我们发现使用者尚未通过认证,我们便可以透过一连串程序代码来检查使用者是否来自登入窗体页面,然后比对使用者输入的帐号与密码是否有效,最后便可让使用者通过认证程序。在这个程序的任何一个阶段里面,如果使用者未经授权,我们便把该使用者导向到登入窗体页面,并且停止执行接下来的任何程序代码。请参考下面这段范例程序,里面的批注会说明每个步骤的功能与用处。
<!--- 如果使用者是来自登入窗体页面... ---> <CFIF ISDEFINED("FORM.Password") AND ISDEFINED("FORM.UserName")> <!--- 根据接收到的使用者名称,到数据库中查询该使用者的资料 ---> <CFQUERY NAME="CheckPassword" DATASOURCE="mydsn"> SELECT UserName, Password FROM Users WHERE (UserName = '#FORM.UserName#') </CFQUERY>
<!--- 如果密码正确,则授与该使用者存取这个应用程序的权力 ---> <CFIF FORM.PASSWORD IS #CheckPassword.Password#>
在负载平衡服务器环境之下,你永远无法得知哪一部服务器会被指定来处理哪一个使用者发出的请求。负载平衡硬件或者软件纯粹仅是将接收到的使用者请求传递给当时负载最轻的服务器来处理。在这样的状况下我们无法正常运用使用者状态变量,因为某部服务器上面储存的使用者状态变量,对于其它服务器而言都是不可见的。每当负载平衡硬件(或者软件)将同一个使用者从某部伺服器重新导向到另一部服务器(亦即:该使用者的某次请求被分配给 A 服务器来处理,而下一次请求却被分配给 B 服务器来处理),使用者状态变量便会立刻消失不见。