1

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

我在处理我的 RBAC 的数据库中有三个表:

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

授权:在此表中,我将角色映射到权限。每次操作需要权限时,我都会进行检查。如果权限<->角色在表中,我返回 true 并且操作被授权。

所以,这里有几个关于这个场景的问题。

  • 这是一种检查授权的轻量级方法吗?通过在用户执行的每个页面加载和操作上查询数据库。
  • 我应该将其保存在 XML 文件中以获得更快的结果吗?
  • 这种 RBAC 有更好的结构吗?

提前致谢!

4

2 回答 2

1

对于 50-100 个用户,我会在应用程序中缓存每个活跃用户的内容。这避免了 db 提取的任何小开销,除非它过期。因此,只需拥有一些可以廉价缓存的小对象,但其中包含运行应用程序核心功能所需的所有用户信息。

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

于 2011-02-25T09:36:03.300 回答
0

以下是您的问题的答案。

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

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

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

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

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

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

于 2015-07-30T10:09:48.677 回答