【发布时间】:2010-05-11 02:11:37
【问题描述】:
我正在尝试为我的 ASP.NET MVC 应用程序创建一个授权方案,其中使用枚举来设置权限。例如:
[Flags]
enum Permissions
{
ReadAppointments = 1,
WriteAppointments = 2 | ReadAppointments,
ReadPatients = 4,
WritePatients = 8 | ReadPatients,
ReadInvoices = 16,
WriteInvoices = 32 | ReadInvoices
...
}
但我不太喜欢这样,因为它确实没有明确说明 Write 总是包含 Read。
然后我意识到一个要求是用户可能没有访问权限,例如约会。
基本上,我想要一个具有 3 种状态的“位域”:无、只读、完整(读/写)。我想仍然使用枚举位域,因为它很容易存储在数据库中(作为整数)。也很容易查看是否设置了权限。
有没有人知道如何使用 Enum 轻松完成此操作...还是我走错了方向?
编辑:我真的想避免在数据库中存储权限定义,因为我真的希望事情可以改变,而不必在数据库端进行太多修改。很高兴知道大型应用程序如何做到这一点。
【问题讨论】:
-
在低级别保持 4 个状态:无,x 但不是 Y,Y bot 不是 X、X 和 Y。此外,使用 1 移位而不是 1、2、4、8、16 0 位、1 位移位、1 位移位 2 位等
标签: c# asp.net-mvc bitmap