2011-01-28 92 views
0

我很抱歉我的英語。ASP.NET - 緩存用戶權限

在我的ASP.NET MVC應用程序中,我有由ASP.NET Membership和用戶組控制的用戶,這些用戶組通過業務邏輯存儲在數據庫中。此外,我實現了ACL(訪問控制列表)體系結構來控制用戶對我的應用程序中的實體的訪問,因此我有一些結構爲User-Object-Privilegy-Value的記錄(存儲在數據庫表中)。

爲確保用戶有權訪問某個實體(或對象),我需要重新創建所有用戶是參與者的組的層次結構並查找該主題的所有特權。

爲了優化,我需要將這些信息緩存在應用程序緩存中,但我還需要監視是否有任何用戶,用戶組或特權已更改爲使緩存記錄無效。

我可以通過某種方式實現它,但我想知道更好的方法。

有沒有人有過相同的經驗?什麼是緩存用戶權限的最佳解決方案?

回答

0

有一些內置的緩存工具,但沒有一個會緩存並使具有足夠知識的特定自定義結構無效,以處理自動描述的層次結構。你將不得不寫你自己的。

但是,您仍然可以使用內置的CacheDependency系統作爲底層框架。您將不得不擴展這個類,並且自己訂閱各種更改通知。