我們的Web應用程序(asp.net 4.0)
對IIS (7.5/8.0)
如何清除主Web應用程序和虛擬子應用程序中的會話? (ASP.NET)
-MainWebApp (application pool: MainWebApp)
--VirtualWepApp1 (application pool: VirtualWepApp1)
--VirtualWepApp2 (application pool: VirtualWepApp2)
--VirtualWepApp3 (application pool: VirtualWepApp3)
單一登錄頁面位於MainWebApp
以下結構。用戶相關的數據被存儲在會話並且每當用戶訪問那些虛擬應用程序下資產(.NET頁)在基於所述HttpContext.Current.Profile.UserName
的VirtualWepApp1, VirtualWepApp2, VirtualWepApp3
重新創建。問題,我們正面臨着用戶沒有完全從系統中註銷,如果他/她穿過MainWebApp/logout
頁面。
圍繞我做的工作是:
- create logout page for every application with Session.Abandon() and System.Web.Security.FormsAuthentication.SignOut()
- the logout link goes to the VirtualWepApp3/logout
- from VirtualWepApp3/logout redirect to VirtualWepApp2/logout
- from VirtualWepApp2/logout redirect to VirtualWepApp1/logout
- from VirtualWepApp1/logout redirect to MainWebApp/logout
其他的解決辦法是把所有應用程序相同的應用程序池下,但是這 - 由於一些其他編碼的困難 - 沒有,沒有。
問題:有沒有簡單的方法來清除會話/註銷用戶從所有應用程序(主要和虛擬)?
-
PS。我已經繼承了這種虛擬應用程序的結構/體系結構。
正如我以爲這是不可能的從一個地方清除所有應用程序池的會話。這實際上是預期的行爲。主要原因在於安全性 - 從其他應用程序池修改應用程序池狀態的能力將爲各種攻擊打開大門,特別是在多租戶託管環境中。 – itGru 2013-04-24 15:56:57