+2  A: 

Provider is a synonyme with "Supplier" which means:

Someone whose business is to supply a particular service or commodity

Just as in real life, a provider is someone / something that helps you solve communicaiton with a certain service or help you solve a problem.

For instance, the Membership Provider in .NET is used to handle Membership such as Authentication, Registering new Users and many more options comes with this.

The Role Provider goes hand in hand with the above, because it helps you handle Roles attached to users that you have in ( They have Memberships! ).

You might want to read this: Microsoft ASP.NET 2.0 Provider Introduction from MSDN

Filip Ekberg
+1  A: 

Using the Provider model means that if you don't like the way something in ASP.NET works or you want/need to extend it, you can write your own. As long as it supports the core functionality that ASP.NET needs to work as part of the platform i.e. it inherits from MemrbershipProvider/RoleProvider/WhateverProvider, you can do what you want in the internals. You can then swap out the default Provider and use yours in it's place e.g. say you don't use SQL Server, you use CouchDB for all your data storage. You can't use the SqlMembershipProvider, but you can write a CouchDBMembershipProvider* - as long as you inherit from MembershipProvider and override its' methods to work with CouchDB you're good to go.

* I'm not saying you should do this, I'm just saying you can :-)

PhilPursglove