What is an ASP.NET Provider?
It's a design pattern: The Provider model. There is some good information in this SO Q&A as well: Designing loosely coupled components in .NET - Provider Pattern
It's just a concrete implementation of an abstract interface. You can select an appropriate provider to fulfill the requirements of the interface at runtime.