我有一个非常简单的个人资料页面,用户可以上传图片和视频。我已经实现了自己的角色系统,而且我没有使用.NET(我想学习和构建自己的)。我最多只有10'000个用户,同时使用它的用户大约有50-100个用户。
我在DB中有三个表来处理我的RBAC:
角色:管理员,用户,经理,访客
权限: SendEmail,AdvancedSearch,RemoveUser ......等。
授权:在此表中,我将角色映射到权限。每次操作需要权限时,我都会检查一下。如果权限< - >角色在表格中,则返回true并且操作已获得授权。
所以,这里有几个问题。
提前致谢!
答案 0 :(得分:1)
对于50-100个用户,我只是在应用程序中缓存每个活动用户的内容。除了过期时,这可以避免数据删除带来的任何小开销。所以只需要一些可以廉价缓存的小对象,但它包含运行应用程序核心功能所需的所有用户信息。
没有什么可以阻止你使用它来实现IPrincipal
来使用内置的[PrincipalPermission(...)]
内容,但是自己也可以这样做。
答案 1 :(得分:0)
以下是您的问题的答案。
•这是一种轻量级的检查授权方式吗?通过在用户进行的每个页面加载和操作上查询数据库。
答。我将在数据库上应用可配置的缓存系统层,并使用此缓存系统进行具有可自定义的到期时间的授权。
•我是否应该将其保存在XML文件中以获得更快的结果?
答。我不喜欢xml文件,而是使用序列化。
•这种RBAC有更好的结构吗?
答。就DB和RBAC的结构而言,它应该足够安全,不能直接从DB中调整应用程序的访问控制或权限。