需要一些关于我自己的基于角色的访问控制(RBAC)的建议

时间:2011-02-25 09:20:14

标签: .net database authorization rbac

我有一个非常简单的个人资料页面,用户可以上传图片和视频。我已经实现了自己的角色系统,而且我没有使用.NET(我想学习和构建自己的)。我最多只有10'000个用户,同时使用它的用户大约有50-100个用户。

我在DB中有三个表来处理我的RBAC:

角色管理员,用户,经理,访客
权限 SendEmail,AdvancedSearch,RemoveUser ......等。

授权:在此表中,我将角色映射到权限。每次操作需要权限时,我都会检查一下。如果权限< - >角色在表格中,则返回true并且操作已获得授权。

所以,这里有几个问题。

  • 这是一种轻量级的检查方式 授权?通过查询数据库 每个页面加载并操作用户 使
  • 我应该将其保存在XML文件中 结果更快?
  • 是否有更好的结构 那种RBAC?

提前致谢!

2 个答案:

答案 0 :(得分:1)

对于50-100个用户,我只是在应用程序中缓存每个活动用户的内容。除了过期时,这可以避免数据删除带来的任何小开销。所以只需要一些可以廉价缓存的小对象,但它包含运行应用程序核心功能所需的所有用户信息。

没有什么可以阻止你使用它来实现IPrincipal来使用内置的[PrincipalPermission(...)]内容,但是自己也可以这样做。

答案 1 :(得分:0)

以下是您的问题的答案。

•这是一种轻量级的检查授权方式吗?通过在用户进行的每个页面加载和操作上查询数据库。

。我将在数据库上应用可配置的缓存系统层,并使用此缓存系统进行具有可自定义的到期时间的授权。

•我是否应该将其保存在XML文件中以获得更快的结果?

。我不喜欢xml文件,而是使用序列化。

•这种RBAC有更好的结构吗?

。就DB和RBAC的结构而言,它应该足够安全,不能直接从DB中调整应用程序的访问控制或权限。