You can specify a class that serves as your security interface - generally you will create a custom subclass of wwUserSecurity for your particular application. For example the Web Log implements the following:
*********************************************************************** DEFINE CLASS WebLogUserSecurity AS wwUserSecurity OF wwUserSecurity.prg *********************************************************************** *** Stock Properties cAlias = "WebUserSecurity" cFilename = "Weblog\data\WeblogUserSecurity" ENDDEFINE *EOC WebLogUserSecurity
All this subclass does is provide a mapping to a specific user table. This class is then referenced on the control that is embedded into the Web form:
<ww:wwWebLogin ID="Login" runat="server" UserSecurityClass="WebLogUserSecurity" Center="true" UserMessage="<small><i>Use test/test to access the Administration features.</i></small>" Width="170px" TextBoxWidth="90px" Cellpadding="2" />
Once this control is on a form you can click the button and it will automatically authenticate the user and if successful store the user's username in the Session object:

Once authenticated the control displays the user credentials as a small in place tag to indicate the user is logged in:

For example, to check if a user is logged in you can do:
IF !this.WebLogSideBar.Login.LoggedIn *** Hide Delete Option this.hypRemove.Visible = .f. ENDIF
lcUser = Session.GetSessionVar("_LoginName") IF EMPTY(lcUser) Response.Redirect("Login.wcsx") && your page that hosts the login control RETURN ENDIF ... allow access to code here
If you end up doing this sort of thing in a lot of pages of your code I suggest you create a generic application specific UDF() that wraps this logic into a single validation step...
If you decide you can't live with wwUserSecurity, your other option is to subclass the wwWebLogin control and override the Login and Logut methods. The methods are very simple and the key of them is to set the SessionVars and the LoggedIn and IsAdmin properties. You can easily plug your own classes into this simple logic as needed.