Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using multiple membership providers within ASP.Net MVC 3 application

I am adding a new area to an existing mvc 3 razor app as an admin area for managing some settings and content. The rest of the site is currently secured by a custom provider that authenticates our clients. Now I need to authenticate some employees to access the admin area, The client user data is in a totally different database and format than what I need for our employees.

Is this possible without a lot of headaches?

like image 793
JBeckton Avatar asked Mar 17 '11 16:03

JBeckton


1 Answers

There is actually very little headache involved.

Simply add all the MembershipProviders you want in web.config:

<membership defaultProvider="MembershipProvider1">   <providers>     <clear/>     <add name="MembershipProvider1" type="MvcApplication.MembershipProvider1" />     <add name="MembershipProvider2" type="MvcApplication.MembershipProvider2" />     <add name="AspNetSqlMembershipProvider"       type="System.Web.Security.SqlMembershipProvider"             connectionStringName="ApplicationServices" />   </providers> </membership> 

As you can see I have added two providers. I have also specified a default provider.

I can then switch between the two like this:

var membershipProvider1 = Membership.Providers["MembershipProvider1"]; membershipProvider1.ValidateUser("Mike", "banana");  var membershipProvider2 = Membership.Providers["MembershipProvider2"]; membershipProvider2.ValidateUser("Mike", "orange"); 

You probably want to wrap that into an application service or something, but you get the idea. Not so much headache, right?

like image 129
Mikael Östberg Avatar answered Oct 10 '22 01:10

Mikael Östberg