Today we released the source code for the built-in ASP.NET 2.0 Membership, Role Management, Site Navigation, Session State, Profile, Web Events, and Web Part Personalization providers (basically all of the built-in providers that ship in the .NET 2.0 Framework Redist). You can download them here, and learn more about the ASP.NET 2.0 Provider Model from this site here.
The source code is released under a permissive license that allows both commercial and non-commercial re-use of the source code, and should be very useful both for people wanting to build their own custom providers (you can take our source and just tweak it if you want), or to better understand/debug our existing ones.
The provider source code comes with a buildable VS 2005 Project all setup.
Jeff Prosise also wrote 130+ pages of awesome whitepapers that walkthrough the code, database schema, and how they work. You can read them here:
- Microsoft ASP.NET 2.0 Providers: Introduction
- Membership Providers
- Role Providers
- Site Map Providers
- Session State Providers
- Profile Providers
- Web Event Providers
- Web Parts Personalization Providers
The beauty of the ASP.NET 2.0 Provider model is that it delivers rich extensibility and flexibility to the built-in productivity features you get with ASP.NET 2.0. Out of the box with ASP.NET 2.0 you get a secure user management and role credential store (no need to write any database code -- just call Membership.CreateUser() or use the <asp:login> controls and you are good to go). Because you can plug-in custom provider implementations, though, you also have the flexibility to customize the implementations in the future if you want (or adapt them to go against existing databases or stores that you already have with other applications). Code written to the Membership APIs or <asp:login> controls will work regardless of what provider you have configured in your web.config file.
To learn more the new ASP.NET 2.0 Security Features, please check out this post I did a month ago. It provides links to tons of content (including a nice 12 minute video you can watch to learn how easy it is to add Membership and Roles to a site from scratch). It also links off to a number of other providers (including Access and MySql ones) that people have already written.
Hope this helps,
P.S. Earlier this month I blogged about a bunch of the cool ASP.NET releases we were doing this month, but I forgot to mention this one.... Sorry! :-)