Pull the data out of the database and put it into your Membership User class.
I use Factory classed to pull data from the database and return objects, also the factories do the reverse, they take the object and update the database.
For example in mine (member List Temp is a list of my Membership User class objects): Look at the following membership section, you need to add the providers section, put the clear tag first in order to clear all other membershipproviders. The type tag is important and needs to be a fully qualified namespace to your membershipprovider class. You do not call the change password function from Get User, you simply need to return a valid Membership User object (Access Membership User).
The name of the protected virtual method should be the same as the event name prefixed with On.
For example, the protected virtual method for an event named "Time Changed" is named "On Time Changed".
If you take a look at the source code for the SQL Membership Provider (download the Provider Toolkit Samples), you'll see that it includes logic to validate the password, and also calls , and that it seems to imply that it is handling password validation, rather than raising an event to let other code validate the password.
For what it's worth, I understand the confusion - it would probably be clearer if the method had been named Do use a protected virtual method to raise each event.
The problem was that the Change Password control calls the Change Password function on the Membership User class not the Membership Provider class.