User Guide

Table Of Contents
Security scenarios 387
6.
The application uses the IsUserInRole function to check whether the user belongs to a role
before it runs protected code that must be available only to users in that role.
7.
The application can use the GetAuthUser function to determine the user ID; for example, to
display the ID for personalization. It can also use the ID as a database key to get user-specific
data.
Caution: If you use web server–based authentication or any form authentication that uses a Basic
HTTP Authorization header, the browser continues to send the authentication information to your
application until the user closes the browser, or in some cases, all open browser windows. As a result,
after the user logs out and your application uses the
cflogout tag, until the browser closes, the cflogin
structure in the
cflogin tag will contain the logged-out user’s UserID and password. If a user logs out
and does not close the browser, another user might access pages with the first user’s login.
An application authentication security scenario
An application that does its own authentication might work as follows. The example in
Application-based user security example” on page 394 implements this scenario.
1.
Whenever ColdFusion receives a request for a ColdFusion page, it instantiates the
Application.cfc and runs the
onRequestStart method. If you use an Application.cfm page in
place of Application.cfc, ColdFusion runs the contents of the Application.cfm page before it
runs the requested page. The
onRequestStart method or Application.cfm page contains the
cflogin tag. ColdFusion executes the cflogin tag body if the user is not logged in. A user is
logged in if the
cfloginuser tag has run during the current session and the user had not been
logged out by a
cflogout tag.
2.
Code in the cflogin tag body checks to see if it has received a user ID and password, normally
from a login form.
3.
If there is no user ID or password, the code in the cflogin tag body displays a login form that
asks for the user’s ID and password.
The form posts the login information back to the originally requested page, and the
cflogin
tag in the
onRequestStart method or the Application.cfm page runs again. This time, the
cflogin tag body code checks the user name and password against a database, LDAP
directory, or other policy store, to ensure that the user is valid and get the users roles.
4.
If the user name and password are valid, the cflogin tag body code calls the cfloginuser tag
with the user’s ID, password, and roles, to identify the user to ColdFusion.
5.
When the user is logged in, application pages use the IsUserInRole function to check whether
the user belongs to a role before they run protected code that must be available only to users in
that role.
The application can use the
GetAuthUser function to determine the user ID; for example, to
display the ID for personalization. It can also use the ID as a database key to get user-specific
data.
6.
Each application page displays a link to a logout form that uses the cflogout tag to log out the
user. Typically, the logout link is in a page header that appears in all pages. The logout form can
also be in the Application.cfc (for example, in the
onRequestStart or onRequestEnd method)
or on the Application.cfm page.