Asp.net
使用相同登錄數據庫的多個應用程序相互註銷
我在一台機器上設置了兩個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,但是,您必須在您的程序上更改許多點,並擷取程序登錄、註銷和身份驗證。
希望這對您有所幫助。