如何在MVC 4.5中短时间保留数据

时间:2014-10-02 02:39:12

标签: asp.net-mvc

我有一个授权属性和一个HTML扩展程序,用于检查用户是否有权查看或访问所需的数据。在应用程序中,用户的权限可能不会经常更改,但是当他们被更改时,我需要立即(或至少在一两分钟内)生效,即使用户已登录。

AuthorizeAttribute示例

[RequireRoles(RolesRequired = RoleTypes.Admin)]

剃刀视图中的HtmlExtension

@if (Html.RequireRoles(RoleTypes.Admin | RoleTypes.User)){}

Authorize Attribute和Html Extension都使用相同的代码从数据库中检索用户的角色。

调用View时,它通常具有主视图。在主视图中,我可以调用HtmlExtension 6次(可能或多或少取决于我当时显示的内容),根据用户的访问权限构建菜单(这也将在其他视图中使用)。

然后页面上可能会有一些控制器(比方说3)被调用,控制器使用授权属性来确保他们有权执行所需操作。

这意味着在用户登录并转到页面(MyApp / Index)后,它将对数据库进行9次调用以检查用户的当前权限。虽然返回的是少量数据,但我认为这样做的次数太多了。

我曾考虑使用缓存暂时保留数据,但我不确定这是否在Web场方案中支持。

所以我的问题是,使用Web场在短时间内保存此数据的最佳方法是什么?

0 个答案:

没有答案