Asp.net

使用相同登錄數據庫的多個應用程序相互註銷

  • March 22, 2010

我在一台機器上設置了兩個ASP.NET應用程序,它們的 web.config 文件在AspNetSqlMembershipProvider項中包含相同的**applicationName值,因此它們共享使用者和角色。

問題順序是:

  • 使用者登錄到應用程序 A,
  • 在瀏覽器中打開新標籤
  • 登錄到應用程序 B,
  • 他在應用程序 A 中的登錄已註銷

反之亦然。

我應該使用不同的方法在兩個應用程序之間共享登錄資訊嗎?

您遇到的問題是因為使用相同的 cookie 來驗證 2 個不同的登錄。

據我了解,解決方案是在不同的登錄名上提供不同的 cookie 名稱,所以一個 cookie,而不是覆蓋另一個。

可能解決方案在 web.config 上。

在配置

如果您具有相同的域並在不同的目錄/應用程序上執行,請將名稱值更改為您的 2 個應用程序上的不同名稱,或者也更改用於保留 cookie的域值。

<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:domain=“app2.yoururl.com”

如果您將應用程序分開,基於 url,甚至嘗試一些類似的 aproces。

cookie 是保留的,使用域名上的 cookie 名稱,因此這是您必須嘗試將它們分開的 2 個值。

可以在此處找到有關表單設置的詳細資訊:http: //msdn.microsoft.com/en-us/library/aa480476.aspx

手動登錄

如果您有機會進行手動登錄,則解決方案在此功能上

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

您只需要使用不同的cookiePath,但是,您必須在您的程序上更改許多點,並擷取程序登錄、註銷和身份驗證。

希望這對您有所幫助。

引用自:https://stackoverflow.com/questions/2454623