How to Change Membership provider during runtime

G

Guest

Hi All,

Can I use more than one membership provider for a given website? I
understand only one of them could be default one. If yes, then how to
programmatically access the other membership provider? For e.g. lets say I
have a SQLMembership provider and OracleMembership provider. SQL would be my
default provider. During authentication, based on the value of an additional
parameter in the login screen, I need to validate against SQL or Oracle db.
Is this feasible?

I found this on MSDN

“You can also configure multiple membership providers, which allows you to
select a membership provider at run time based on application requirements.
For example, for business reasons your membership information might be in
separate regional databases. By configuring multiple membership providers
that each interact with a different regional database, you can direct
membership calls to the appropriate provider for different users.â€

http://msdn2.microsoft.com/en-us/library/sx3h274z.aspx


Any idea on how to switch Membership provider during runtime?

Thanks for tip,
-Balaji NJL
 
K

Ken Cox [Microsoft MVP]

Hi Balaji,

You need to make sure all the membership providers are listed in the
web.config file, like this:

<membership defaultProvider="Mydefaultprovider">
<providers >
<clear/>
<add connectionStringName="ASPNETDBConnectionString1"
name="MyOracleprovider"
type="System.Web.Security.OracleMembershipProvider"/>
<add connectionStringName="ASPNETDBConnectionString2"
name="Mydefaultprovider" type="System.Web.Security.SqlMembershipProvider"/>
</providers>
</membership>

Then in your code, reference the one you want to use:

Dim mbr As MembershipProvider
mbr = Membership.Providers.Item("MyOracleprovider")
' mbr.CreateUser(....
Response.Write(mbr.GetType)

Let us know if this helps?

Ken
Microsoft MVP [ASP.NET]
 
G

Guest

That helps, Thanks a lot.

Ken Cox said:
Hi Balaji,

You need to make sure all the membership providers are listed in the
web.config file, like this:

<membership defaultProvider="Mydefaultprovider">
<providers >
<clear/>
<add connectionStringName="ASPNETDBConnectionString1"
name="MyOracleprovider"
type="System.Web.Security.OracleMembershipProvider"/>
<add connectionStringName="ASPNETDBConnectionString2"
name="Mydefaultprovider" type="System.Web.Security.SqlMembershipProvider"/>
</providers>
</membership>

Then in your code, reference the one you want to use:

Dim mbr As MembershipProvider
mbr = Membership.Providers.Item("MyOracleprovider")
' mbr.CreateUser(....
Response.Write(mbr.GetType)

Let us know if this helps?

Ken
Microsoft MVP [ASP.NET]


Balaji said:
Hi All,

Can I use more than one membership provider for a given website? I
understand only one of them could be default one. If yes, then how to
programmatically access the other membership provider? For e.g. lets say I
have a SQLMembership provider and OracleMembership provider. SQL would be
my
default provider. During authentication, based on the value of an
additional
parameter in the login screen, I need to validate against SQL or Oracle
db.
Is this feasible?

I found this on MSDN

"You can also configure multiple membership providers, which allows you to
select a membership provider at run time based on application
requirements.
For example, for business reasons your membership information might be in
separate regional databases. By configuring multiple membership providers
that each interact with a different regional database, you can direct
membership calls to the appropriate provider for different users."

http://msdn2.microsoft.com/en-us/library/sx3h274z.aspx


Any idea on how to switch Membership provider during runtime?

Thanks for tip,
-Balaji NJL
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top