我们没有将每个权限拆分为单独的列或 sql server 表,而是重新考虑使用Flag
属性来Enum
与位操作一起使用。我们的应用程序定义了访问资源(读取、修改、更新)的端点(不是来自其他服务的端点),并且每个用户都被授予权限,例如Bob has permissions to Read, Modify resource X
,当 bob 访问该资源时,我们检查 bob 是否具有权限 x。现在我们将在哪里应用这很清楚这是我的疑问
假设 Bob 使用标记的枚举对资源具有读、写、删除权限,我会做
Permission.Read | Permission.Write | Permission.Delete
的最终结果是按位与整数还是另一个枚举?对于在数据库表中存储此权限,该列应为
integer
?如果对问题 1 的回答是,
Enum
那么我是否应该在Permissions
枚举上定义另一个属性,该属性表示位和运算的整数值?
disclaimer:
示例中所指的 Bob 不代表 Stack Overflow 站点网络中的任何用户或任何人。这只是另一个角色