多个应用程序使用相同的login数据库相互logging

我在一台机器上设置了两个ASP.NET应用程序,它们的web.config文件在AspNetSqlMembershipProvider项中包含相同的applicationName值,因此它们共享用户和angular色。

问题顺序是:

  • 用户login到应用程序A,
  • 在浏览器中打开新标签
  • login到应用程序B,
  • 他在应用程序A中的login被注销

反之亦然。

我应该使用不同的方法在两个应用程序之间共享login信息吗?

您拥有的问题是因为使用了相同的cookie,用于validation2个不同的login名。

从我理解的解决scheme是给不同的login名称cookie,所以一个cookie,而不是覆盖另一个。

可能解决scheme是在web.config。

在configuration

如果您有相同的域并在不同的目录/应用程序上运行, 或者更改也用于保存Cookie 的域值请将名称值更改为您的2个应用程序中不同的内容。

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

例如,在你的应用程序的2个不同的web.config中,放置
在应用程序1上: name =“.app1”
在应用程序2上: name =“。app2”

或者在应用程序1上: domain =“app1.yoururl.com”
在应用程序2: 域=“app2.yoururl.com”
如果你分开你的应用程序,基于url,甚至尝试一些类似的aproces。

Cookie保留,使用域名的cookie名称,所以这是你必须尝试将它们分开的2个值。

窗体设置上的详细信息可以在这里find: http : //msdn.microsoft.com/en-us/library/aa480476.aspx

手动login

如果你有机会做手动login解决scheme是在这个function

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

您只需要使用不同的cookiepath,但是您必须更改程序中的许多点,并捕获进程login,注销和身份validation。

希望这对你有所帮助。

你应该看看这个教程。

向下滚动到标题为将用户存储分区为应用程序的部分。 它说那里你可以使用同一个用户存储多个应用程序。