Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple applications using same login database logging each other out

I've set up two ASP.NET applications on a machine, their web.config files contain the same applicationName value in AspNetSqlMembershipProvider item so they share users and roles.

The problem sequence is:

  • user logs into application A,
  • opens new tab in a browser
  • logs into application B,
  • his login in application A is signed out

and vice versa.

Should I use a different approach to sharing login information between two applications?

like image 628
Axarydax Avatar asked Mar 16 '10 13:03

Axarydax


1 Answers

The problem you have is because the same cookie used, for authenticate the 2 different logins.

The solution from what I understand is to give different cookie name on the different logins, so the one cookie, not overwrite the other one.

Probably the solution is on web.config.

On Config

Change the name value, to something different on your 2 apps, if you have the same domain and run on different directory/apps, or change also the domain value that used also to keep the cookie.

<authentication mode="Forms">
 <forms name=".CookieSuffix" domain="yoururl.com" ... />
</authentication>    

For example, on the 2 diferent web.config on your apps, place
on app 1: name=".app1"
on app 2: name=".app2"

Or on app 1: domain="app1.yoururl.com"
on app 2: domain="app2.yoururl.com"
if you separate your apps, base on url, or even try some similar aproces.

The cookie is keep, using the cookie name on the domain name, so this is the 2 values that you must try to seperate them.

Details on Form setup can be found here: http://msdn.microsoft.com/en-us/library/aa480476.aspx

Manual login

If you have the oportunity to make manual login the solution is on this function

FormsAuthentication.GetAuthCookie(cUserName, false, "cookiePath");
FormsAuthentication.SetAuthCookie(cUserName, false, "cookiePath");

You only need to use a diferent cookiePath, but, you must change many points on your program, and capture the process login, logout and Authenticate.

Hope this help you.

like image 176
Aristos Avatar answered Oct 14 '22 15:10

Aristos