这个问题想了很久,想在这里求教一下。
在我的应用程序中允许有 10 个用户角色。它是一个 ASP.NET MVC2 应用程序。每个 Controller 方法只能由特定用户角色访问。
为了实现这一点,我创建了一个 UserRoleType 枚举。
public enum UserRoleType
{
SystemAdministrator = 1,
SeniorLevelExecutive = 2,
SeniorManager = 3,
JuniorManager = 4,
SeniorAdmin = 5,
JuniorAdmin1 = 6,
JuniorAdmin2 = 7,
SeniorAppraiser = 8,
JuniorAppraiser = 9,
SeniorResearch = 10
}
这些值与数据库中的内容匹配(具有 10 行的 UserRole 表)。
此外,用户的 UserRoleId 存储在 [User] 表中。一旦用户登录,我们就会从数据库中获取用户的 roleId,并将其与上面的枚举相匹配。例如,如果用户的 roleId 是 4,则表示他/她是初级经理。
此应用程序目前未投入生产。我看到的唯一缺点是,当我们上线时,如果由于某种原因用户角色类型表中的值与枚举不匹配,我们将遇到大麻烦。有哪些选择?或者我应该只专注于确保我们在数据库中有匹配的值。任何帮助将不胜感激。
非常感谢!
最佳答案
我的观点是,如果您不能信任您自己在数据库和配置文件中的配置,那么您无论如何都会犯错。只需确保您的数据库记录将该值作为特定列值,而不是自动生成的行 ID。
关于c# - 存储查找值的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599788/