Link to home
Start Free TrialLog in
Avatar of edenmachine
edenmachine

asked on

Hows can I create a new Application in the ASP.NET Membership?

I'm using the ASP.NET Membership for my web site authorization.  I don't see an obvious way to create new Applications outside the Website Administration Tool.  Are there methods built in for this or do I need to just add them programmatically myself?
Avatar of GreymanMSC
GreymanMSC

You use the System.Web.Security.Membership and System.Web.Security.Roles objects to programatically create, edit, and delete members and roles.
Avatar of edenmachine

ASKER

Yes, I have no problem creating users and roles.  My question was how to create/add/insert a new Application.  There's a table in the Membership db that is called "Application" and each user belongs to an Application via an ApplicationID.
sorry the table is actually called "aspnet_Applications"
It sounds like you want 2 different asp.net apps to use the same membership database right?
You can't set the application id manually....but to make 2 apps use the same membership db.... in the web.config of both, just make sure they both point to the same membership database (same connection string) and if you want them to share users or not share users, follow the tip.

"Another important property to set in the membership configuration is the applicationName property. The applicationName allows one database to support multiple web applications. If you have two web applications and want both apps to share the same user base, give both applications the same applicationName and point them to the same aspnetdb database. If you want both applications to use the same database but not share users, give each application a unique applicationName property. "
http://www.odetocode.com/Articles/427.aspx

Actually it's really just one Web application but I would like to separate the Users by Company so there could be duplicate usernames for each Company.

Like Company A could have a jsmith and a Company B could also have a jsmith but there can't be two jsmith usernames in Company B or Company A.  The only way to do this is to have an application for each Company I would think.  I guess I could just insert the Application records manually - just figured there was a built in method to do that.  I would have figured that I wasn't the only person on the planet that needed to do something similar to this.  Am I way off base in my thinking here or something?  I there a better way to do what I'm trying to do?
ASKER CERTIFIED SOLUTION
Avatar of samtran0331
samtran0331
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Yeah, after messing with it - Application doesn't allow for what I'm trying to do.  I did add on company name at the login and I had to append company name to the username so that it'll allow for non-unique usernames accross different companies like: Acme_JohnSmith and WiggetCo_JohnSmith since I can't just have two JohnSmith usernames otherwise for different companies.  I just had to tap into the Login functionality and append the company and username when they log in.

However,  I kind of like the email address for a username idea a lot better - I never thought about doing that.  That would kind of solve all my problems and keep me from having to ask them for company each time they log in.  Plus, using email address for login is pretty acceptable these days anyway.
>>keep me from having to ask them for company each time they log in

You could still do what you're doing, but you don't have to "ask" the user to input/choose the company name by using a querystring variable...
Like tell everyone at company A to login to the site at:
http://www.yourapp.com/login.aspx?Company=Acme
and then you can use the querystring value to append...

At least that would make it a little easier on the user...

or even a bit better, have a company table in the db so that you can:
http://www.yourapp.com/login.aspx?CompanyID=2 
etc..