私たちのWebアプリケーション(asp.net 4.0)
は、IIS (7.5 / 8.0)
-MainWebApp (application pool: MainWebApp)
--VirtualWepApp1 (application pool: VirtualWepApp1)
--VirtualWepApp2 (application pool: VirtualWepApp2)
--VirtualWepApp3 (application pool: VirtualWepApp3)
シングル ログイン ページは にありますMainWebApp
。ユーザー関連のデータはセッションに保存され、ユーザーがそれらの仮想アプリケーションの下のアセット (.net ページ) にアクセスするたびに、にVirtualWepApp1, VirtualWepApp2, VirtualWepApp3
基づいて再作成されます。HttpContext.Current.Profile.UserName
ユーザーがページを通過した場合、ユーザーがシステムから完全にログアウトされないという問題に直面してい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
他の解決策は、すべてのアプリケーションを同じアプリ プールに配置することですが、これは、他のコーディング上の問題により、ノーノーです。
質問: すべてのアプリケーション (メインおよび仮想) からセッション/ログアウト ユーザーを簡単にクリアする方法はありますか?
--
追伸。仮想アプリのこの構造/アーキテクチャを継承しました。