Multiple Site Collections - One membership database

Aug 24, 2012 at 3:19 AM

I was able to install the FBAPack and it works beautifully for its intended purposes!  But my needs are a bit different.  What I'm wondering is if I can manage individual site collections without other site collections being aware of other users.

Example:
Site Collection 1 - Client Site 1 - http://mysite/sites/client1
Site Collection 2 - Client Site 2 - http://mysite/sites/client2

I want only Site Collection 1 to be able to request new users to be created specifically for Client Site 1, but I don't want them to be able to see anyone in my membership database.  Currently, if I give them access, they will be able to see all members in the database from both Client Site 1 and Client Site 2.

I want both Client Site 1 and Client Site 2 to be able to register new users so that the IT staff can approve and set the proper site settings / groupings for the appropriate site.  I also want individual users to be able to reset their passwords.

I'm thinking that I can control this through web parts and web part security, but having a little troubles mapping out how to do this.  My initial tests haven't succeeded.  Any high level ideas or approaches (not looking for detailed resolutions)?.?.?

Thanks!

Coordinator
Aug 24, 2012 at 4:12 AM

One way to do it would be to put each site collection in a seperate web application. Then you can specify a different membership provider database for each web application and have complete seperation.

Sep 14, 2012 at 6:46 PM

I finally had some time to play around with this and it did work as expected.  The only concern around this approach is that there's a lot of overhead.  Each site collection has to use a different membership provider database, getting away from a single user database.  I could have 50 - 75 site collections and I don't want to have a separate database for each site collection.  Any other ideas?  Custom LDAP approach?

Coordinator
Sep 17, 2012 at 2:19 PM

With ASP.Net Membership, you can actually use the same database - but you would need a different web.config entry for each web application.  You would just set a different applicationName for each web.config.  See here:

http://msdn.microsoft.com/en-us/library/system.web.security.membership.applicationname.aspx