Nimer, Thanks for your help! I'm a big fan of your books btw! So i tried to put your CFLOGIN code in play, but i can still get to the main a pplication. Wouldn't the CFLOGIN have to within the IF statement? Becuase if the user isn't found in the database then there is no need to set CFLOGIN at all right? Also, i think what i get confused with flex is with events. If my auth.cfc method login sends a value of FALSE as the return value, then wouldn't my on Fault event come into play? Or would it just be the Result variable? If so, wouldn't i have to put a more detialed if statment within the login_result function of Login.mxml?
Here is the code from that file: <?xml version="1.0" encoding="utf-8"?> <mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" width="100%" height="100%" creationComplete="initApp()"> <mx:Metadata> [Event("forgotpassword")] [Event("loginSuccessful")] </mx:Metadata> <mx:Script> <![CDATA[ import mx.events.ValidationResultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.utils.ObjectUtil; import mx.controls.Alert; private var lso:SharedObject; private function initApp():void { this.lso = SharedObject.getLocal("auth"); if( this.lso.data['user'] != null ) { this.user.text = this.lso.data['user']; this.rememberLogin.selected = true; } if( this.lso.data['password'] != null ) { this.password.text = this.lso.data['password']; this.rememberLogin.selected = true; } } private function isValid():Boolean { var pswdValidResult:ValidationResultEvent = this.pswdValidate.validate(this.password.text); if (pswdValidResult.type==ValidationResultEvent.VALID) { return true; } else { return false; } } private function authenticateUser():void { if( isValid() ) { authManager.login( this.user.text, this.password.text ); } } private function errorMessage(msg:String):void { //Alert.show( ObjectUtil.toString(event.message) ); this.errorMsg.text = msg; this.errorMsg.height = 15; this.errorMsg.visible = true; } private function serverFault(event:FaultEvent):void { errorMessage(event.message['message']); } private function login_result(event:ResultEvent):void { // login successful, remember the user. if( Boolean(event.result)) { if( this.rememberLogin.selected ) { this.lso.data['user'] = this.user.text; this.lso.data['password'] = this.password.text; } else { this.lso.data['user'] = null; this.lso.data['password'] = null; } this.dispatchEvent( new Event('loginSuccessful') ); } else { // login didn't work. show message errorMessage("Login unsuccessful"); } } ]]> </mx:Script> <mx:RemoteObject id="authManager" destination="ColdFusion" source="Tiomkin.Tiomkin_Admin.components.cfgenerated.managers.Auth" showBusyCursor="true"> <mx:method name="login" result="login_result(event)" fault="serverFault(event)" /> </mx:RemoteObject> <mx:StringValidator id="pswdValidate" source="{this.password}" property="text" required="true" /> <mx:Text id="errorMsg" visible="true" color="red" width="100%" height="0" /> <mx:FormItem width="100%" label="User Name" required="true"> <mx:TextInput id="user" width="175"/> </mx:FormItem> <mx:FormItem width="100%" label="Password" required="true"> <mx:TextInput id="password" displayAsPassword="true" width="175"/> </mx:FormItem> <mx:FormItem> <mx:CheckBox id="rememberLogin" label="Remember Login" selected="false" /> </mx:FormItem> <mx:VBox width="100%" horizontalAlign="right"> <mx:Button label="Login" click="authenticateUser();"/> <mx:LinkButton label="Forgot Password?" click="this.dispatchEvent(new Event('forgotpassword'));" fontStyle="italic" width="150" textAlign="right"/> </mx:VBox> </mx:Form> So should there be something like this: private function login_result(event:ResultEvent):void { // login successful, remember the user. if( Boolean(event.result) && event.result == true) { if( this.rememberLogin.selected ) { this.lso.data['user'] = this.user.text; this.lso.data['password'] = this.password.text; } else { this.lso.data['user'] = null; this.lso.data['password'] = null; } this.dispatchEvent( new Event('loginSuccessful') ); } else { // login didn't work. show message errorMessage("Login unsuccessful"); this.currentState='login';" } } Like i said i get really confused with events, and i've been reading a ton but its still fuzzy to me at this point, but i need to have this application secure. Greatly appreciate your help! :) thanks again David -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/