检查[Authorize(Roles =“Student”)]时asp.net是否进行任何缓存

时间:2014-10-27 12:19:29

标签: asp.net sql-server asp.net-mvc asp.net-web-api

我有一种方法,我想限制使用具有“学生”角色的人。我想探索不同的方法。

首先我知道我可以装饰这样的方法:

  [Authorize(Roles = "Student")]

如果我知道“Student”的角色的RoleId为4,如果我知道用户的UserId为2,那么:

  

方法的装饰比允许每个方法更强大效率   用户进入角色,然后对我的身份2进行选择   数据库,以查看用户2在AspNetUserRoles中的roleId是否为4   表

作为一个FYI,我使用带有ASP.Net Identity 2.1的WebAPI和令牌承载认证。我的所有用户都可以通过Web浏览器前端访问。如果没有缓存但是有一种方法可以启用缓存,我会很感激任何人的建议,如果默认情况下没有启用它,可以帮助我建议如何使用它。

1 个答案:

答案 0 :(得分:2)

您可以使用CacheRolesInCookie从web.config启用角色提供程序的缓存功能。有关详细信息,请参阅this link

或者,您可以始终覆盖默认的角色提供者(有关详细信息,请参阅this link),但我想这并不是您正在寻找的...