Provider Model In .Net 2.0/3.0
The .Net Framework provides a model for us to create providers for a set of pre-existing services, or for creating our own provider services. The provider we are probably most familiar with is the membership provider. This article from 4guysfromrolla.com is a great place to start with membership and roles. Using this provider allows us to just plonk a login control onto a form and not write any code to create a fully secure site. We can have ASP.NET create a bunch of tables for security in a database of our choosing (see part 3 of above article) and in Web.Config specify what role a user needs to access a folder/file. .Net does the rest!
But there comes a time when we might decide that we don't want our members in a database, or we want a different database schema, or even a different vendor (eg Oracle). This is where the provider model comes in.
So lets say we want to store users in our own database schema, in an Access database. We need to write our own Membership provider by inheriting from:
System.Web.Security.MembershipProvider
In doing so we are forced to override some methods that provide the implementation for our provider. For example, we need to override the following method to update a user:
public abstract void UpdateUser (MembershipUser user);
Once we have implemented our provider, we just need to tell the application to use that provider. We use the same Web.Config entries mentioned in the above article to do this. For example:
<membership defaultProvider="AccessMemberProvider">
<providers>
<add
name="AccessMemberProvider"
type="Snagy.AccessMemberProvider"
connectionStringName="MyConnection"
applicationName="StevesTestApp"
/>
</providers>
</membership>
Essentially you can use the provider model for anything you want. Out of the box, .Net's membership, roles, profiles, site maps, session state, web part personalisation, and web events are all supplied via a provider model. In all cases .Net gives you at least 1 or 2 providers to use, mostly around SQL Server or Active Directory. However you can create your own provider and do anything you want. You can also create your own provider services if you so desire.
For a great article to get started on providers and writing your own, check out this Microsoft documentation.
0 Comments:
Post a Comment
<< Home