1

我的 MVC 4 应用程序中有一个动态菜单系统。所有用户的完整菜单对象都是相同的。所以我将它保存在应用程序缓存中,缓存取决于我从中获取它的数据源。

现在,菜单是动态的,因此它会过滤掉当前用户无法访问(未经授权)的菜单项。但是我不想每次用户请求页面时都运行这个过滤器代码。所以,我的计划是将它保存在 Session 对象中。有没有更好的方法在不使用会话的情况下做到这一点?

4

1 回答 1

1

从安全角度来看,您根本不应该缓存该过滤器逻辑如果您在用户登录时更改了用户的权限(例如,由于某种违规行为而完全撤销他们)会发生什么情况,那么在他们注销并尝试再次登录之前,撤销实际上不会生效。

但是,如果您不经常更改权限并且安全性不像上面描述的那么重要,那么仅使用 Session 就足够了(尽管我讨厌会话,所以我个人会重新运行逻辑)。

于 2013-10-02T10:47:16.633 回答