public override bool ChangePassword( string username, string oldPassword, string newPassword )
        {
            using( var c = new NwdAuthContext() )
            {
                User u = GetUser( username, c );

                if( u == null ) return false;
                if( u.Password != EncodePassword( oldPassword ) ) return false;

                u.Password = EncodePassword( newPassword );
                c.Users.Attach( u );
                c.Entry( u ).Property( m => m.Password ).IsModified = true;
                c.SaveChanges();

                return true;
            }
        }
        public override void UpdateUser( MembershipUser user )
        {
            using( var c = new NwdAuthContext() )
            {
                User u = c.Users.Where( m => m.Username == user.UserName ).FirstOrDefault();
                if( u == null ) return;

                c.Users.Attach( u );

                if( user.Email != u.Email )
                {
                    u.Email = user.Email;
                    c.Entry( u ).Property( m => m.Email ).IsModified = true;
                }

                if( user.ProviderName != u.Name )
                {
                    u.Name = user.ProviderName;
                    c.Entry( u ).Property( m => m.Email ).IsModified = true;
                }

                c.SaveChanges();
            }
        }