我有幾個網站使用HTTPModule(包裝在DLL中)來認證用戶並將認證對象存儲在應用程序緩存中約10小時。然後我在用戶機器上設置一個包含緩存鍵的cookie。ASP.Net應用程序上下文數據共享
我現在正在尋找一種方法來允許管理員清除任何給定用戶的所有網站的特定緩存對象(實際登出),導致他們下次訪問時自動重新登錄(通過Windows身份驗證)任何網站。
我打算建立一個單一管理網站,提供重設登錄的功能 - 但由於明顯的安全原因,我無法更改其他網站的應用程序緩存。
有沒有任何方式將信號傳遞給那些使用認證模塊的站點,以便他們可以清除自己的應用程序緩存?
注意:我已經閱讀了memcached,但我想避免一個不是'標準ASP.NET'的解決方案,如果可能的話。
我傾向於通用處理程序的一種形式,通過分析HttpApplication.BeginRequest中的請求並運行緩存清除代碼(如果url符合某些條件)。它確實意味着維護每個網站的URL的中央列表,以便儘可能地調用它。 –
的確如此,但是您將需要使用各種解決方案的列表,您希望在這些網站之間進行直接交流。我只是想到另一個,可能更好的方法,但將編輯到我的答案。 – magnattic
我已經有一箇中央站點來管理它,但是它將已驗證用戶的權限傳遞迴請求項目,以便它們可以被緩存。如果我將這些數據緩存在中央項目中,它將會破壞目標,因爲消費項目將不斷需要查詢中央身份驗證站點以獲取用戶權限。我想在一個「Cache22」的情況下,哈哈。 –