Membership, in a nutshell, is a framework built into the .NET Framework that supports creating, authenticating, deleting, and modifying user account information. Each user account has a set of core properties: username, password, email, a security question and answer, whether or not the account has been approved, whether or not the user is locked out of the system, and so on. These user-specific properties are certainly helpful, but they're hardly exhaustive--it's not uncommon for an application to need to track additional user-specific properties. For example, an online messageboard site might want to also also associate a signature, homepage URL, and IM address with each user account.
There are two ways to associate additional information with user accounts when using the Membership model. The first--which affords
the greatest flexibility, but requires the most upfront effort--is to create a custom data store for this information. If you are
SqlMembershipProvider, this would mean creating an additional database table that had as a primary key the UserId value from
the aspnet_Users table and columns for each of the additional user properties. The second option is to use the Profile system, which allows additional user-
specific properties to be defined in a configuration file. See Part 6 for an in-depth look at the Profile system.
This article explores how to store additional user information in a separate database table. We'll see how to allow a signed in user to update these additional user-specific properties and how to create a page to display information about a selected user. What's more, we'll look at using ASP.NET Routing to display user information using an SEO-friendly, human-readable URL like www.yoursite.com/Users/username. To read the entire article, Storing Additional User Information with ASP.NET Membership, click here.