我试图为我的ASP.NET MVC应用程序创建一个授权方案,其中Enum用于设置权限。例如:比特菲尔德与3个国家...?
[Flags]
enum Permissions
{
ReadAppointments = 1,
WriteAppointments = 2 | ReadAppointments,
ReadPatients = 4,
WritePatients = 8 | ReadPatients,
ReadInvoices = 16,
WriteInvoices = 32 | ReadInvoices
...
}
但是我不是那么喜欢这个,因为它确实没有说清楚Write总是包含Read。
然后,我意识到一个要求是用户可能无权访问例如约会。本质上,我想要一个有3个状态的“位域”:无,只读,完整(读/写)。我想仍然使用enum位域,因为它很容易存储在数据库中(作为int)。另外,很容易看到是否设置了权限。
有没有人有任何想法如何使用枚举容易地完成这项工作...或者我会完全错误的方向吗?
编辑:我真的试图避免在数据库中存储权限定义,因为我真的希望事情是可以改变的,而不必在数据库端修改太多。知道一个大型应用程序如何做到这一点真的很好。
保持它在低级别的4个状态:无,x但不是Y,Y僵尸不是X,X和Y.此外,而不是1,2, 4,8,16使用1移位0位,1移位1位,1移位2位等。 – 2010-05-10 17:33:20