ASP.NET MVC对基于角色的安全性有很好的支持,但是使用字符串作为角色名称是令人生畏的,因为它们不能被强烈类型为枚举。
例如,我的应用程序中有一个“Admin”角色。 “管理员”字符串现在将存在于我的操作的授权属性,我的主页面(用于隐藏选项卡),在我的数据库(用于定义每个用户可用的角色)以及我的代码或视图中的任何其他位置我需要为管理员或非管理员用户执行特殊逻辑的文件。
解决方法
我通常使用一个类与一串字符串常量。这不是一个完美的解决方案,因为你需要记住坚持使用它无处不在,但至少它摆脱了错字的可能性。
static class Role { public const string Admin = "Admin"; }