Multiple applications using same login database logging each other out

只谈情不闲聊 提交于 2019-12-27 12:03:27

问题


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?


回答1:


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.




回答2:


You should check out this tutorial.

Scroll down to the section titled Partitioning the User Store Into Applications. It says there that you can use the same user store for multiple applications.



来源:https://stackoverflow.com/questions/2454623/multiple-applications-using-same-login-database-logging-each-other-out

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!